我正在尝试在链接到index.html的外部javascript文件中编写一个函数,当调用它时,它会写入内容;例如,在index.html文件第18行的<script></script>
标记之间。如果是这样,如何做到这一点?
编辑:我想在我的index.html中只有一个脚本标签。
function writeToScriptTags() {
// this function should write alert("Hello") to the <script></script> tags in the index.html file.
}
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<!-- Dependencies -->
<script src="https://code.jquery.com/jquery-3.3.1.min.js" charset="utf-8"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" charset="utf-8"></script>
<script src="https://code.jquery.com/color/jquery.color-2.1.2.min.js" charset="utf-8"></script>
<title>CodeDragon</title>
<link rel="stylesheet" href="/css/master.css">
</head>
<body>
<div id="Dragon"></div>
<input type="text" name="_input" value="" id="_input">
<script src="script.js" charset="utf-8"></script>
<script>
// Javascript file should write alert("Hello") here
</script>
</body>
</html>
发布于 2018-07-29 02:28:46
如果脚本标记已经存在,那么您可以将它的text
/textContent
/innerText
值设置为您想要执行的任何代码。但是脚本需要事先是空的,即没有文本,甚至没有空格,否则它就不会运行。
//use an appropriate css selector to find the correct script
//this just selects the first script it finds
var s = document.querySelector('script');
s.text = 'alert("Here")';
创建一个新的script元素并添加代码可能会更好,因为这样您就不需要担心之前是否已经使用了script标记。
var s = document.createElement('script');
document.head.appendChild(s);
s.text = 'alert("Here")';
当然,如果使用src
属性设置脚本,脚本的文本将不会运行任何代码,因为外部链接的脚本元素会忽略它。
发布于 2018-07-29 02:23:03
你可以尝试这样做,假设这是你的external.js文件
function writeToScriptTags() {
// this function should write alert("Hello") to the <script></script> tags in the index.html file.
}
您可以通过这种方式在index.html文件的标签之间调用external.js文件的函数。
$.getscript("path/to/jsFile", function() {
writeToScriptTags()
});
希望你能有个主意。
发布于 2018-07-29 04:00:23
jQuery解决方案:
$('script').html('alert(\'Hello\')');
普通JS解决方案:
document.querySelector('html').innerHTML = alert('Hello');
不要将它作为文本添加到代码中,因为它会呈现为纯文本,并且不会有任何功能。
https://stackoverflow.com/questions/51573988
复制相似问题