我试图在Chrome扩展程序中复制这个简单的JavaScript,但没有任何效果。我知道我无法使用内联脚本,因此我确切地知道问题所在,但我已经遍布此网站而无法找到解决方案。
<HTML>
<HEAD>
<TITLE>Test Input</TITLE>
<script type="text/javascript">
function redirect(user)
{
var location='https://www.stackoverflow.com/';
window.location = location+user;
}
function join_ym()
{
var thing1 = document.getElementById('thing1').value;
var thing2 = document.getElementById('thing2').value;
document.getElementById('joint').value = 'this-'+thing1+'-then-this-'+thing2;
javascript:redirect(document.getElementById('joint').value);
}
</script>
</head>
<body>
<p>First Thing:<input type="text" id="thing1" /></p>
<p>Second Thing:<input type="text" id="thing2" /></p>
<input type="hidden" id="joint">
<input type="button" value="go" onclick="join_ym();">
</BODY>
</HTML>
在这个例子中有两个文本框,所以如果你输入&#34; thing&#34;两个,然后点击go你会被带到:https://stackoverflow.com/this-thing-then-this-thing。我认为问题特别针对onclick事件,除非输入类型也是一个问题。我查看了内容安全策略中的示例以及此站点中的示例,但没有任何效果。我需要知道的是.js中的内容以及.html文件中的内容。任何帮助表示赞赏。谢谢。
答案 0 :(得分:1)
是的,不允许使用内联脚本。您需要将所有脚本移动到单独的文件中,例如script.js
,然后使用<script>
标记引用该标记:
<script src="script.js"></script>
您可能还需要在脚本中设置按钮,例如
。document.querySelector('button[value=go]').onclick = join_ym;