是否有方法使用javascript来修改脚本元素?
例如:
HTML:
<script id="something" src="/js/file.js"></script>
Javascript:
var something = document.getElementById("something");
something.src = "/js/anotherfile.js"
有可能吗?因为我有一些代码是这样工作的,但是它不起作用
具体来说,下面是代码:
<!DOCTYPE html>
<html>
<head>
<title>MyohTheGod's Website</title>
<link rel="icon" type="image/x-icon" href="/supercorn.gif" defer>
</link>
<link id="css" href="/css/dark.css" rel="stylesheet" type="text/css">
</link>
<script src="/js/particles.js" defer></script>
<script src="/js/header.js"></script>
<script src="/js/theme.js"></script>
<script>window.alert("Welcome to the Home of MyohTheGod. You can play games, check out our web proxies, and more. Also, please do check out the About page. Press OK to continue...");</script>
</head>
<body>
-snip-
</body>
<script id="foot" src="/js/footer.js"></script>
</html>
<script>
-snip-
</script>
var css = document.getElementById("css");
var foot = document.getElementById("foot");
function toggleDLmode(m) {
-snip-
if (dlmodebool) {
css.href = "/css/dark.css"
foot.src="/js/dark-footer.js"
} else {
css.href = "/css/index.css"
foot.src="/js/footer.js"
}
}
-snip-
发布于 2022-09-08 01:38:53
它在工作,你检查过吗?它确实改变了,但是您可能在想,“为什么这个/js/另一个文件js没有下载呢?”因为脚本标记已经呈现并下载了,所以您不能这样做。通过添加新的脚本标记,您可以做些什么。
也许这会对How to dynamically change the script src?有帮助。此链接将解释您的代码“不工作”的更多原因。
发布于 2022-09-08 01:42:38
当然有。您可以使用document.scripts,它返回可以像数组一样迭代的集合。您可以使用innerHTML属性更改代码,非常类似于普通元素。见这里https://developer.mozilla.org/en-US/docs/Web/API/HTMLCollection
编辑以添加:如果您有一个包含多个脚本标记的html页面,则document.script集合将按它们出现的顺序排列每个脚本。下面的代码将注销源(src标记)或每个脚本元素的实际javascript。
您还可以通过设置innerHTML属性“写”javascript。
IMHO --这是一种寻找问题的解决方案,但至少可以让您访问所拥有的脚本数量。
[...document.scripts].forEach(script => {
if (script.src != '') {
console.log("Script source:" + script.src);
} else {
console.log(script.innerHTML);
}
});
https://stackoverflow.com/questions/73642880
复制相似问题