我正在撰写Chrome扩展程序。我正在尝试让我的脚本打开一个新选项卡并在搜索中输入文本,但我似乎遇到了同步问题。这是我的代码:
的helloworld.html :
<html>
<h1 id="test"></h1>
<head>
<script src="navigate.js"></script>
</head>
</html>
的manifest.json
{
"name": "Sonic",
"version": "0.1",
"manifest_version": 2,
"description": "My first Chrome extension.",
"permissions": [ "tabs" ],
"browser_action": {
"default_icon": "Sonic_Sprite.png",
"default_popup": "helloworld.html"
},
"content_scripts": [
{
"matches": ["http://stackoverflow.com/questions/*/*"],
"js": ["jquery-1.11.3.js", "content.js"]
}
]
}
content.js
var raw_title = document.getElementsByClassName("question-hyperlink")[0];
var kickass = window.open("https://kickass.unblocked.pe/");
$(kickass.document).ready( function() {
kickass.alert("hello");
var s = kickass.document.getElementById("contentSearch");
alert(s);
});
我从jquery的ready()
函数中获得了不可预知的行为。也许20%的时间我加载页面它会给我一个提醒。
这是一个常见错误,如果是这样,可以采取哪些措施来解决它?在继续使用jquery之前,我使用了onload
,并且在触发警报方面产生了更糟糕的结果。
答案 0 :(得分:0)
我不知道这是解决方案,但这应该有效
var raw_title = document.getElementsByClassName("question-hyperlink")[0];
var kickass = window.open("https://kickass.unblocked.pe/");
var firstload= "false";
localStorage.setItem("someVarName", someVarName)
$(kickass.document).ready( function() {
var someVarName = localStorage.getItem("someVarName");
if(someVarName=="false")
{
kickass.alert("hello");
var s = kickass.document.getElementById("contentSearch");
alert(s);
}
else
{
//page is not loading first time do the stuff you want to
}
});
如果要从localstorage中删除它,只需像这样调用
var someVarName = localStorage.removeItem(getItem("someVarName"))