我已经阅读了我能找到的每一个谷歌搜索结果,但这仍然无法正常工作...我想要做的就是根据点击的链接更改脚本来源。源文件将有document.write返回的一行或两行,如下所示:
document.write(`This is content script a`);
所以我有以下设置,一个带有两个调用changeSrc函数的链接的html文件,它应该更改源代码:
<!DOCTYPE html>
<html>
<body>
<a id="aLink" href="#" onclick="changeSrc('a');return false;">Change to a</a/><br>
<a id="aLink" href="#" onclick="changeSrc('b');return false;">Change to b</a/><br>
<script id="contentScript" src="a.js"></script>
</body>
</html>
&#13;
JS文件:
function changeSrc (arg) {
document.getElementById("contentScript").innerHTML = '';
if (arg == "a") {
document.getElementById("contentScript").innerHTML = '<script id="contentScript" src="a.js"></script>';
} else if (arg == "b") { {
document.getElementById("contentScript").innerHTML = '<script id="contentScript" src="b.js"></script>';
}
}
为什么链接上的脚本源不会改变?!
谢谢你的时间,我觉得自己像个白痴......答案 0 :(得分:1)
尝试
document.getElementById("ContentScript").src = your_script_source_here
希望这有帮助!
答案 1 :(得分:-2)
aLink
aLink
。你知道什么是身份证。addEventListener
</a/>
???应该是</a>
(在跳转到JS之前请学习HTML )#contentScript
是<script>
标记。你为什么要使用innerHTML = ""
?脚本执行不在文字HTML的范围内。data-*
属性"src"
标记的<{1}} 一次 ...
您应该动态创建一个全新的<script>
元素:
<script>
https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement
https://developer.mozilla.org/en/docs/Web/API/Node/appendChild
https://developer.mozilla.org/en-US/docs/Web/API/Node/removeChild
https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener
https://developer.mozilla.org/en/docs/Web/API/Event/preventDefault