혼자,이 코드는 작동합니다 코드에 10 개의 함수를 추가합니다. 코드를 호출하지도 않지만 코드가 작동을 멈 춥니 다.
CustomButton = {
1: function() {
alert("Just testing")
},
}
나는 아래의 코드를 추가하고 위의 코드는 작동을 멈 춥니 다 :
function getvisitingnow() {
return document.location;
}
function getcontents(uri) {
var req = new XMLHttpRequest();
req.open('GET', uri, true);
req.onreadystatechange = function (aEvt) {
if (req.readyState == 4) {
if(req.status == 200) {
return req.responseText;
}
}
};
req.send();
}
function regexforsitefound(uri, searchcontents) {
var re = new RegExp("\\<div class=g\\>.*?(?:\\<a href=\\\"?(.*?)\\\"?\\>.*?){2}\\</div\\>", "mi");
var sitefound = searchcontents.match(re);
if (sitefound[0]) return sitefound[0] else return null;
}
function regexforcategoryfound(uri, searchcontents) {
var re = new RegExp("\\<div class=g\\>.*?(?:\\<a href=\\\"?(.*?)\\\"?\\>.*?){2}\\</div\\>", "mi");
var categoryfound = searchcontents.match(re);
if (categoryfound[1]) return categoryfound[1] else return null;
}
function regexfordomainname(uri) {
var re = new RegExp("http://(?:[A-Za-z0-9-]+\\.)?[A-Za-z0-9-]+\\.[A-Za-z0-9-]+/?", "si");
var domainname = uri.match(re);
if (domainname) return domainname;
}
function regexforparentdir(uri) {
var re = new RegExp("http://(?:[A-Za-z0-9-]+\\.)?[A-Za-z0-9-]+\\.[A-Za-z0-9-]+/?", "si");
var parentdir = uri.match(re);
if (parentdir) return parentdir;
}
function getcomparisonlink(visitingnow) {
var searchuri = null;
var searchcontents = null;
var uri = visitingnow;
while(true) {
searchuri = 'http://www.google.com.br/search?';
searchuri += 'q='+ uri +'&btnG=Search+Directory&hl=en&cat=gwd%2FTop';
searchcontents = getcontents(searchuri);
var sitefound = regexforsitefound(searchcontents);
if (sitefound) {
var categoryfound = regexforcategoryfound(searchcontents);
if (categoryfound) {
return categoryfound;
}
} else {
var domainname = regexfordomainname(uri);
if (!domainname) {
var parentdir = regexforparentdir(uri);
uri = parentdir;
} else {
return null;
}
}
}
}
function clickedlink(event){
var visitingnow = getvisitingnow();
if (visitingnow) {
getcomparisonlink(visitingnow);
if (comparisonlink) {
tab.open(comparisonlink);
};
}
}
function createBookmarkItem() {
const XUL_NS = "http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";
var item = document.createElementNS(XUL_NS, "toolbarbutton");
item.setAttribute("id", "Testing-Doit-Button2");
item.setAttribute("class", "bookmark-item pagerank");
item.setAttribute("tooltiptext", "Do it!");
item.setAttribute("oncommand", "testing_doit();");
return item;
}
function placeBookmarkItem() {
var toolbar = document.getElementById("PersonalToolbar");
var button = createBookmarkItem();
toolbar.appendChild(button);
}
이유는 무엇입니까?
삽입 한 코드에 오류가있을 수 있습니다. 문제가 있는지 확인하려면 Firefox 오류 로그를 확인하십시오. – Bobby
한 번에 하나의 기능 만 추가하려고 했습니까? 페이지에 구문 오류가있는 경우 모든 자바 스크립트가 작동을 멈 춥니 다. –
확장이로드 될 때 바로 toJavaScriptConsole()을 호출하는 것이 도움이된다는 것을 알았습니다. js 파일의 맨 위에 놓거나 init() 메소드가있는 경우이를 넣으십시오. 오류 콘솔이 표시되지 않는다면 구문 오류 때문일 수 있습니다. 꾸러미를 포장하고 배포하기 전에 그 전화를 제거하는 것을 잊지 마십시오. – MatrixFrog