0

我正在忙於開發鉻擴展。我的Chrome擴展注入css不會工作

它的作用:

  1. 獲得從PHP頁面(XMLHttpRequest的)數據

  2. 分割使用.split

  3. 當有人點擊一個div結果變量,它會調用一個函數來插入一個名稱爲1的css文件。

我的問題:

好吧,當我點擊那個按鈕時沒有任何反應。它在我使用變量「newvar」而不是XMLHttpRequest中的變量「currenttheme」時起作用。我試着將它轉換爲字符串以及使用.toString。哦,提醒變量確實起作用,並給出與newvar完全相同的響應。

我的代碼:(嘆氣!)

//My XMLHttpRequest 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    user_data = xmlhttp.responseText; 
    window.user_data = user_data; 
    processdata(); 
    } 
    } 
xmlhttp.open("GET","http://localhost:8888/myphppage.php",true); 
xmlhttp.send(); 

function processdata() { 
//split result variable from PHP 
var downdata = user_data.split('|||||'); 
var installedthemes = downdata[0]; 
currenttheme = downdata[1].toString(); 
window.currenttheme = currenttheme.toString(); 
} 

function click(e) { 
    newvar = "001"; 
    //insert css - works with variable newvar but not with this one 
    chrome.tabs.insertCSS(null, 
    {file:currenttheme + ".css"}); 
    //alerting the variable works, exactly the same as newvar 
    alert (currenttheme); 
} 

document.addEventListener('DOMContentLoaded', function() { 
    var divs = document.querySelectorAll('div'); 
    for (var i = 0; i < divs.length; i++) { 
    divs[i].addEventListener('click', click); 
    } 
}); 
+0

對您的問題更好的標題可能會幫助您獲得更多回復。 – itsmequinn 2012-02-17 17:51:35

+5

現在*//代碼爲IE6,IE5 * *真的*防擴散鍍鉻擴展 – 2012-02-17 17:52:54

回答

0

window.user_data = USER_DATA; // < - 不是必需的。 user_data = xmlhttp.responseText意味着user_data對這個窗口是全局的。 window.currenttheme = currenttheme.toString(); < < - 不需要太

也downdata [1]是一個字符串,因此更換

currenttheme = downdata[1].toString(); 

currenttheme = downdata[1]; 

如果這沒有幫助,嘗試警報(currenttheme);並查看您是否獲得了所需的主題名稱,因爲有時PHP可能會拋出錯誤並死亡,這可能不會產生「|||||」。檢查php輸出並提醒xmlhttp.responseText以查看是否一切正常。

+0

我沒有提醒它。有或沒有額外的代碼,它警告正確,但不會工作。 – 2012-02-17 18:23:13

+0

好的,快速備份php文件並在PHP文件中,只需添加以下內容: 「||||| 001」<< - 這必須是php文件中唯一的東西。 。將文件保存爲php文件並再次運行該頁面並檢查它是否可用。如果這些腳本包含在單獨的.js文件中,也是CLEAR CACHE。 – Akshay 2012-02-17 18:30:28

+0

同時嘗試使用文件:(currenttheme +「.css」) – Akshay 2012-02-17 18:34:08