![](/img/trans.png)
[英]Detection Chrome and Edge Chromium not working at my website
[英]Simple function not working in Chrome and Chromium
这个简单的杂项在Chromium(Ubunto)和Chrome中不起作用。
的HTML
<input type="button" id="saveFavPunch" name="saveFavPunch" value="save" onClick="saveFavPunch()" >
脚本
var req;
function saveFavPunch(){
alert('govind singh');
if(!req){
req=$.ajax({
type:"POST",
url:"edit?editType=saveFavPunch",
data: {"value":document.getElementById("punchId").value},
complete:function(){req=false},
success: function(data){
$.fancybox.close();
if(data==""){
alert("ERROR!");
}else{
if(data=="0"){
alert("Internal Error Occurs, please try after some time");
}else{
document.getElementById("favPunchline").innerHTML=data;
}
}
}//end success
});
}
}
现在还不能添加注释,代码没什么问题,但是要使其在jsfiddle中工作,请将onLoad更改为noWrap
每个设置的作用说明: http : //doc.jsfiddle.net/basic/introduction.html#frameworks-and-extensions
基本上,您需要将其放在简单的<script>
标记中,而不是在onLoad
事件中
摆弄您提供的代码: http : //jsfiddle.net/Sam88/YEPm3/12/
既然您在标签中提到了jQuery,我想我会提供一个jQuery解决方案: Fiddle
HTML:
<input type="button" id="saveFavPunch" name="saveFavPunch" value="save" />
Javascript:
$("#saveFavPunch").on("click", function () {
alert('hello2');
});
:)
编辑
Javascript未在JSFiddle上运行可能与您的问题重复。 我引用了选定的答案:
您定义的函数是在onload函数中定义的,因此在它们可被引用之前,因为它们是在该函数中定义的,所以只能在该函数中引用它们。 您在HTML中将它们称为全局变量。 您有三个选择
a)(最简单,最快,最不理想)-将函数blah(){}更改为window.blah = function(){}; 使功能全局化。
b)(理想的方式)-使用不引人注目的Javascript将行为仅从JS内附加到DOM元素,这意味着将HTML与JS分开。
c)使jsfiddle不包装东西。 将onLoad更改为不环绕(身体或头部)。
因此,代替您执行var e = document.getElementById('foo'); e.onclick =哈哈; 仅在JS中。
我推荐b,因为它鼓励最佳做法。
只需更改一下即可-将JSFiddle设置从“ onLoad”更改为“ No wrap-in”,它可以工作:
onLoad选项的问题在于,这是它在结果中输出的内容:
//<![CDATA[
window.onload=function(){
function saveFavPunch(){
alert('hello2');
}
}//]]>
因此,您的函数被无意间包装在另一个函数中,这会阻止从该onclick
调用中找到它。
希望这可以帮助。
以下整个脚本对我来说在Chrome中正常运行。
<html>
<head>
<script>
function saveFavPunch(){
alert('hello2');
}
</script>
</head>
<body>
<input type="button" id="saveFavPunch" name="saveFavPunch" value="save" onClick="saveFavPunch()" >
</body>
这有效
document.getElementById("saveFavPunch").addEventListener("click", saveFavPunch);
function saveFavPunch(){
alert('hello2');
}
Ye JSFiddle对Alerts非常挑剔。 正如Spassvogel所显示的那样,它没有任何问题,但是从文件开始,而不是在JSfiddle上,您的方式应该可以正常工作。
即使是您遇到此类问题的人,也请使用div标签
<div id="saveFavPunch" style="height:30px; widht:100px; display:block;" onClick="saveFavPunch()">Save</div>
我认为使用此代码可以解决您的问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.