2
나는 사용자가 미리 정의 된 사이트의 홈페이지를 방문 할 때 자동으로 같은 사이트의 다른 페이지로 리디렉션됩니다 파이어 폭스 확장을 쓰고 있어요. 문제는 홈페이지뿐만 아니라 특정 사이트의 모든 페이지를 리디렉션하므로 리디렉션 루프가 생성된다는 것입니다. 사용자가 홈페이지를 방문 할 때마다 리다이렉트하고, 같은 사이트의 어떤 페이지를 방문 할 때가 아니라파이어 폭스 자동 리디렉션 할 때 사용자가 방문하는 특정 사이트
var myExt_urlBarListener = {
QueryInterface: function(aIID)
{
if (aIID.equals(Components.interfaces.nsIWebProgressListener) ||
aIID.equals(Components.interfaces.nsISupportsWeakReference) ||
aIID.equals(Components.interfaces.nsISupports))
return this;
throw Components.results.NS_NOINTERFACE;
},
onLocationChange: function(aProgress, aRequest, aURI)
{
myExtension.processNewURL(aURI);
},
onStateChange: function(a, b, c, d) {},
onProgressChange: function(a, b, c, d, e, f) {},
onStatusChange: function(a, b, c, d) {},
onSecurityChange: function(a, b, c) {}
};
var myExtension = {
oldURL: null,
init: function() {
// Listen for webpage loads
gBrowser.addProgressListener(myExt_urlBarListener,
Components.interfaces.nsIWebProgress.NOTIFY_LOCATION);
},
uninit: function() {
gBrowser.removeProgressListener(myExt_urlBarListener);
},
processNewURL: function(aURI) {
if (aURI.spec == this.oldURL)
return;
// now we know the url is new...
//alert(aURI.spec);
if(aURI.spec.search("www.examplesite.com") > -1){
gBrowser.contentDocument.location.href = "http://www.examplesite.com/page1";
}
this.oldURL = aURI.spec;
}
};
window.addEventListener("load", function() {myExtension.init()}, false);
window.addEventListener("unload", function() {myExtension.uninit()}, false);
어떻게해야합니까? – user1080292