我试图创建一个扩展来自动执行某些任务。我尝试加载页面,然后在页面加载后执行代码,但我找不到正确的方法。
custom.js:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<button id="btn"> BTN </button>
<script src="custom.js">
</script>
</body>
</html>
的index.html:
function doMath() {
var var1;
var var2;
var num;
for(var x =1; x <= 3; x++){ //use x++ instead of x = x + 1 (easier to read)
if (x == 1) { //fix here
var num = prompt("Enter first number please");
var1 = parseInt(num)
} else if (x == 2) { //and here
var num = prompt("Enter second number please");
var2 = parseInt(num)
} else {
var num = prompt("Enter third number please");
var3 = parseInt(num)
}
}
return Math.min(var1, var2, var3);
}
document.write(doMath());
答案 0 :(得分:1)
要跟踪新页面并在其上运行任何逻辑,一个解决方案可能是在内容脚本文件中添加此逻辑,该文件在 document_end 加载,每次您使用window.location
导航到任何页面,此逻辑将运行。
您可以添加一些条件以确保逻辑在所需的页面/元素上运行。
我清楚了吗?
答案 1 :(得分:1)
您可以使用Content Scripts。
来自文档的示例:如果网址与模式匹配,您需要修改manifest.json
以允许扩展程序自动为网站注入一些javascript。
{
"name": "My extension",
...
"content_scripts": [
{
"matches": ["http://www.google.com/*"],
"js": ["myscript.js", "myscript2.js"]
}
],
...
}
您还可以定义run_at
属性以控制何时注入js中的文件。它可以是&#34; document_start&#34;,&#34; document_end&#34;,或&#34; document_idle&#34;。
答案 2 :(得分:0)
我不确定我是否理解得很好,但如果我理解得好,这应该有用。
document.addEventListener("DOMContentLoaded",yourFunctionGoesHere)
答案 3 :(得分:0)
尝试使用chrome.tabs.onUpdated.addListener检查页面是否已完全加载,其状态等于“已完成”#。
使用此SO thread中提供的代码示例:
chrome.tabs.onUpdated.addListener( function (tabId, changeInfo, tab) {
if (changeInfo.status == 'complete') {
// execute some codes here
}
})