我正在为Microsoft Edge开发一个扩展,并从这里的文档中了解到 https://learn.microsoft.com/en-us/microsoft-edge/extensions/guides/creating-an-extension#writing-a-more-complex-extension 我可以使用Javascript进行数据操作。
出于某种原因,当我尝试像这样修改 DOM 元素时:
<!DOCTYPE html>
<html>
<body>
<p></p>
<script type='text/javascript'>
document.getElementsByTagName('P')[0].innerHTML = 'something';
</script>
</body>
</html>
我在任何HTML/JAVASCRIPT解释器中都得到了想要的结果,但是当我尝试在扩展中对其进行测试时,DOM操作不起作用。p
元素未填充"某物"。manifest.json
文件包含在扩展文件夹中,我只是不在此处包含它,因为它与问题无关。
我应该怎么做?
更新:
窗口.html:
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8'>
<link rel='stylesheet' href='window.css'>
</head>
<body>
<div><p></p></div>
<script src="window.js"></script>
</body>
</html>
窗口.js:
window.onload() {
document.getElementsByTagName('P')[0].innerHTML = 'hakuna matata';
};
你应该使用<script>
标签导入 JavaScript 函数,如下所示:
在js
文件夹myfunction.js
文件中:
document.getElementsByTagName('p')[0].innerHTML = 'something';
在html
文件中:
<!DOCTYPE html>
<html>
<body>
<p></p>
<script src="js/myfunction.js"></script>
</body>
</html>
我在 Edge 扩展中对其进行了测试:如果我们直接在html
页面中使用 JavaScript 函数,那么它不起作用。如果我们使用指向js
文件的链接,那么它可以工作。