我写了一个页面,使用带有onclick的按钮来调用函数,作为一组练习问题的一部分,并为我的学生提供答案.它自7月开始起作用,至少在9月5日星期五没有问题.今天按钮在Chrome中根本无法运行,我无法弄清楚为什么对我的生活.它们确实在IE中继续正常运行.
我发布了我能编写的最简单的代码,但下面的代码不起作用.它非常简单,说实话,我认为这很好.如果我将整个内容粘贴到JSFiddle的HTML框中似乎有效,但如果我尝试分离脚本它不会做任何事情.我不知道是不是因为它被打破了,或者因为我错误地将它分开了.
我在尝试调试时遇到了麻烦,很大程度上是因为Google Sites完全将您的工作重写为自己的格式,而这种格式或多或少是不可读的,而不是由硅制成.当我加载它并尝试单击时,我得到一个例外:
Uncaught Error: shouldn't happen: ES5/3 object passed to makeDOMAccessible
但我完全没有找到那里发生的事情,或者这是否真的是问题.
我已经阅读了很多关于谷歌网站使用Javascript挑剔的内容,我不知道这个问题是关于网站还是Chrome或者这两个问题是什么,或者是什么,但这是我想要解决的问题,因为我的大部分学生和我主要使用Chrome.
下面的所有代码都会进入一个插入的HTML框中,只写FYI.
如果事实证明是重复的话,请道歉;我搜索了很长一段时间,找不到解决方案.
<html> <body> <button onclick="Check()">Push Me</button> <script> function Check() { alert("It worked"); } </script> </body> </html>
任何有关修复我所获得的建议(如果它甚至被破坏)或以简单的方式重做它以及适用于Sites和Chrome的任何建议都将受到欢迎.提前致谢.
Here is one full page that was working previously in Chrome and is no longer.当您按下各种按钮时,它显示了表格的行.
编辑:这似乎适用于较旧版本的Chrome.我想我需要针对此问题点击Chrome论坛.
解决方法
epascarello建议使用addEventListener代替onclick事件的解决方法似乎有效.我仍然无法让我的示例中的警报窗口出于某种原因(针对站点策略?)工作,但我想要的实际功能,设置段落对象的innerHTML,正在正常工作.
这似乎是Google协作平台与Chrome v.37之间的问题.希望它在不久的将来得到解决.
以下是正常工作的等效代码示例.
<html> <body> <button id="AnswerButton1">Check Answer 1</button> <p id="Answer1"></p> <script> document.getElementById("AnswerButton1").addEventListener("click",function(){Answer(1);}); function Answer(n){ document.getElementById("Answer"+n).innerHTML = "Answer to Number 1"; } </script> </body> </html>
感谢那些帮助过的人.