2015-07-21 68 views
-1

所以我寫了一個重定向腳本,不幸的是它重定向每一幀,我是新的Java腳本,並想要這個簡單的擴展。Chrome擴展程序重定向每一幀

的manifest.json

{ 
    "name": "Flannel is #Winning ", 
    "version": "0.2", 
    "description": "Checks URL and redirects as required.", 
    "background": { 
    "page":"bg.html" 
    }, 
    "manifest_version": 2, 
    "content_scripts": [ 
    { 
    "matches": ["http://*/*", "https://*/*"], 
    "js": ["content.js", "bg.js"] 
    } 
    ], 
    "permissions": ["tabs","http://*/*", "https://*/*"] 
} 

bg.html

<html> 
<script src="redirect.js"></script> 
</html> 

content.js

chrome.extension.sendRequest({redirect: newurl}); 

redirect.js

var url; 
var newurl = "http://google.com/"; 
var newurl1 = "google.com/"; 

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) { 
    "use strict"; 
    url = tabs[0].url; 
}); 


function myFunction(url) { 
    "use strict"; 
    if (url !== newurl || url !== newurl1) { 
     chrome.extension.onRequest.addListener(function (request, sender) { 
      chrome.tabs.update(sender.tab.id, {url: request.redirect}); 
     }); 
    } 
} 

chrome.tabs.getSelected(null, function (tab) { 
    "use strict"; 
    myFunction(tab.url); 
}); 

遺憾的是它刷新每一幀,我試圖創建一個檢查,如果當前的URL是一個函數,也許我們只是我的經驗不足的JavaScript,但我想挑戰自己通過寫我的第一個Chrome擴展,我很難過。任何指針或指向任何類型的文檔指向我的寫作方向將不勝感激。

更新

我試過它的這個和額外的變化中,也直線上升並沒有與此代碼在content.js腳本

chrome.tabs.query({'active': true, 'lastFocusedWindow': true}, function (tabs) { 
"use strict"; 
url = tabs[0].url; 
myFunction(url); 

}); 

function myFunction(url){ 
    if(url !== newurl){ 
     chrome.extension.sendRequest({redirect: newurl}); 
} 

注入重定向在所有}

+0

從我所看到的,你是「注入」content.js - 'chrome.extension.sendRequest({redirect:newurl});'在每一個頁面中 –

+0

@JaromandaX檢查更新並給出任何adivce我不知道如何注入頁面重定向只有一次。 –

+0

對不起,丹,我不知道有關鉻擴展的幫助,我只做了一個評論(而不是答案),因爲從我對鉻擴展的瞭解知道的很少,看起來像是在每一個代碼中注入這段代碼頁。如果我對Chrome擴展更有經驗,我會發佈一個**答案**而不是評論 –

回答

1

我想通了由content.js這樣

if (window.location.href !== newurl) { 
    window.location.href = newurl; 
} 

謝謝大家的幫助!

+0

這確實是一個更簡單的解決方案。 – Xan