cor*_*zza 13 html javascript html5
<html>
<head>
<script language = javascript>
show = function()
{
document.getElementById("name").innerHTML = window.opener.game.pl.guild.n;
var app = document.getElementById("app");
var apps = window.opener.game.pl.guild.app;
for (a in apps)
{
var appAdd = document.createElement("option");
appAdd.text = apps[a];
appAdd.value = apps[a];
app.add(appAdd);
}
}
accept = function()
{
console.log("Accepting");
var app = document.getElementById("app");
window.opener.input.options = "acceptApp";
window.opener.input.an = app.options[app.selectedIndex].value;
}
</script>
</head>
<body onload = "show()">
<h1 id = "name" align = "center"> ### </h1>
<div style="text-align:center">
<p>You own this guild.</p>
</div>
</br>
<p>Applications:</p>
<select id = "app"></select>
<input type = "button" onclick = "accept()" value = "Accept application" />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
每次用户单击按钮时,都应调用accept函数.功能本身没什么问题,我很确定.该函数显示在启动时被调用只是用选项填充选择,而create只是将它发送到服务器.
DOK*_*DOK 17
你应该在事件中调用函数后放置一个分号:
onload = "show();"
onclick = "accept();"
Run Code Online (Sandbox Code Playgroud)
编辑:我也在这些 类似的 SO问题中看到,可能存在导致此确切错误消息的函数名称问题.只是为了好玩,您可以尝试重命名您的功能......
sky*_*sky 15
我遇到了同样的问题.然后我发现"下载"是Chrome的保留字之一.所以我必须更改我的javascript方法的名称.
小智 6
我想我知道问题的根源 - 我使用AJAX用存储在变量中的HTML动态填充我的页面.当我将我的函数命名为与我的变量相同时,我遇到了完全相同的问题,看起来好像浏览器试图将变量作为函数运行.例如:
var callthis = 'fjdashfkjdh';
function callthis() {
alert(callthis);
}
Run Code Online (Sandbox Code Playgroud)
HTML:
<button onclick="callthis();" type="button">Click Me</button>
Run Code Online (Sandbox Code Playgroud)
单击该按钮将使Javascript解析器运行Javascript代码,当它到达第一行时,它运行变量而不是寻找函数.这可能是Javascript本身的一个错误,因为它应该查找具有相同名称的第一个函数,而不是第一个名称,它等于要调用的函数,例如callthis();.
希望这对某人有帮助.