jsFiddle无法在Chrome中使用

时间:2013-05-19 11:19:12

标签: javascript html google-chrome jsfiddle

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

HTML

<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';
}

小提琴链接 - http://jsfiddle.net/QVRUG/4/

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

Uncaught ReferenceError: action is not defined 

我进一步调查了错误并找到了 -

Uncaught ReferenceError for a function defined in an onload function

所以我也试过了 -

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

但没有运气:(

请告诉我这种行为为什么它不能用于Chrome并为其他人工作。请不要只提供一个补丁来使小提琴工作,因为我也对这种行为感兴趣。描述性答案(以及进一步研究的相关链接)在案例中非常受欢迎,以便我可以在其余项目中正确移动。

如果问题没有出现在轨道上,请告诉我,我会将其删除(尽管我会尽力使问题清晰明确)

1 个答案:

答案 0 :(得分:4)

这是因为你的jsFiddle中的“语言”设置为Javascript 1.7

为什么这只适用于Firefox?

According to the versioning history1.7只在Mozilla Firefox浏览器中得到支持,因此它可以在那里工作,而不是在其他浏览器中工作。

<强>解决方案:

将jsFiddle的语言部分中的语言从Javascript 1.7更改为Javascript,这样就可以了。我猜你必须将它改为1.7,因为默认值通常只是Javascript(你可以通过将代码粘贴到一个新的jsFiddle中来看到它,它会按预期工作)。

jsFiddle example.