jsFiddle不工作在Chrome

jsFiddle not working in Chrome

本文关键字:Chrome 工作 jsFiddle      更新时间:2023-09-26

最近我用下面的代码创建了一个小提琴-

<button onclick="action();">click me<img src="http://dummyimage.com/200x200/000000/fff.gif&text=Image+1" width="200px" id="ImageButton1"></button>

JS

function action ( )
{
if(document.getElementById("#ImageButton1").src == 'http://dummyimage.com/200x200/000000/fff.gif&text=Image+1' )
document.getElementById("#ImageButton1").src = 'http://dummyimage.com/200x200/dec4ce/fff.gif&text=Image+2';
else
document.getElementById("#ImageButton1").src = 'http://dummyimage.com/200x200/000000/fff.gif&text=Image+1';
}
<

小提琴联系/strong>——http://jsfiddle.net/QVRUG/4/

此代码在FF和我的本地html文件中工作,但在chrome控制台抛出错误-

Uncaught ReferenceError: action is not defined 

我进一步调查了这个错误,发现-

在onload函数中定义的函数的Uncaught ReferenceError

所以我也试了这个-

window.action = function(){...code here...};

但运气不好:(

请让我知道这种行为,为什么它不是在chrome工作,并为他人工作。请不要只是提供一个补丁,使小提琴工作,因为我也对行为感兴趣。描述性的答案(有进一步研究的相关链接)非常感谢在这种情况下,这样我就可以在我的其余项目中正常移动。

如果问题不正确请告诉我,我会把它删除(尽管我已经尽了最大的努力使问题清晰明了)

这是因为在您的jsFiddle中"语言"设置为Javascript 1.7

为什么这只在Firefox中工作?

根据版本历史1.7只支持Mozilla Firefox浏览器,这就是为什么它只能在Mozilla Firefox浏览器中工作而不能在其他浏览器中工作的原因。

解决方案:

在jsFiddle的Languages部分将语言从Javascript 1.7更改为Javascript,它将工作。我猜你一定是把它改成了1.7,因为默认值通常是Javascript(你可以看到,通过将你的代码粘贴到一个新的jsFiddle中,它将按预期工作)。

jsFiddle例子。