OnClick 突然无法在 Chrome 中的 Google 协作平台上运行

问题描述 投票:0回答:1

我编写了一个页面,使用带有 onclick 的按钮来调用函数,作为我的学生的一组练习问题和答案的一部分。 它自 7 月以来一直有效,至少到 9 月 5 日星期五没有出现任何问题。 今天,这些按钮在 Chrome 中根本无法使用,我也无法弄清楚为什么。 它们确实可以在 IE 中继续正常运行。

我已经发布了我能编写的最简单的代码,但在下面不起作用。 这非常简单,老实说我认为很好。 如果我将整个内容粘贴到 JSFiddle 的 HTML 框中,它似乎可以工作,但如果我尝试分离脚本,它不会执行任何操作。 我不知道这是因为它坏了还是因为我错误地分离了它。

我在尝试调试它时遇到了麻烦,主要是因为 Google 协作平台将您的工作完全重写为其自己的格式,如果不是由硅制成,则或多或少无法读取。 当我加载它并尝试单击时,我确实遇到了异常:

Uncaught Error: shouldn't happen: ES5/3 object passed to makeDOMAccessible

但我绝对没有运气弄清楚那里发生了什么,或者这是否真的是问题所在。

我读过很多关于 Google 协作平台对 Javascript 挑剔的文章,我不知道问题是出在协作平台还是 Chrome 上还是两者一起还是什么,但我想解决这个问题,因为我和我的大部分学生主要使用 Chrome。

下面的所有代码都将进入插入的 HTML 框中,仅供参考。

如果结果是重复的,我们深表歉意;我找了好久没找到解决办法。

<html>
<body>
<button onclick="Check()">Push Me</button>

<script>
function Check() {
    alert("It worked");
}
</script>

</body>
</html>

任何有关修复我所拥有的内容(如果它甚至损坏了)或以适用于协作平台和 Chrome 的简单方式重做它的建议都将受到欢迎。 预先感谢。

这是一个完整的页面,以前可以在 Chrome 中使用,但现在不再。 当您按下各个按钮时,它会显示表格的行。

编辑:这似乎适用于旧版本的 Chrome。 我想我需要访问 Chrome 论坛来解决这个问题。

javascript google-chrome onclick google-sites
1个回答
2
投票

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>

感谢那些提供帮助的人。

编辑:几年前忘记真正回答,并且正在回顾旧问题以寻找未回答的事情。 清理干净。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.