2013-04-12 163 views
0

我在寫一個谷歌瀏覽器擴展。它有兩個textareas和一個按鈕。一旦按鈕被點擊,它將從第一個textarea獲取代碼,對其執行一些邏輯,然後在第二個textarea中顯示輸出。當我在瀏覽器中打開.html文件時它工作正常,但是當我想將它用作擴展時它不起作用,並且當我單擊按鈕時什麼都不會發生。我認爲這與權限有關,我已經把「contextMenus」, 「clipboardRead」, 「clipboardWrite」權限放在我的清單文件上,但它仍然不起作用。
如果有人能幫助我,我會感激。
感謝
編輯:代碼
manifest.json的Chrome擴展複製和粘貼權限

{ 
    "name": "MissLang Fix extension", 
    "manifest_version": 2, 
    "version": "1.0", 
    "description": "fixing english to farsi typings.", 
    "icons":{ 
    "128":"icon_128.png" 
    }, 

    "browser_action": { 
    "default_icon": "icon.png", 
    "default_popup": "missLangFix.html" 
    }, 

    "permissions": [ 
    "contextMenus", 
    "clipboardRead", 
    "clipboardWrite" 
    ] 

}

missLangFix.html

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    <link rel="stylesheet" type="text/css" href="style.css"/> 
    <script src="script.js"></script> 
    <title>MissLang Fix</title> 
    </head> 

    <body> 
    <center> 
     <div id="test"></div> 
     <textarea class="txtarea" id="input" rows="4" cols="50"></textarea> 
     <!--<div class="myBtn" onClick="myClick()"> 
     <b style="line-height:30px">fix</b> 
     </div>--> 
     <br/> 
     <input type="button" value="fix" onclick="myClick()" /> 
     <br/> 
     <textarea class="txtarea2" id="output" rows="4" cols="50" readonly="readonly"></textarea> 
    </center> 
    </body> 
</html> 

的script.js

window.onload = myOnload(); 
function myOnload(){ 
    var myString = document.getElementById("txtarea").innerHTML = ""; 
} 

function myClick(){ 
    var myString = document.getElementById("input").value; 

    for(var i=0;i<myString.length;i++){ 
    myString = myString.replace("q","ض"); 
    myString = myString.replace("w","ص"); 
    myString = myString.replace("e","ث"); 
    } 

    //document.getElementById("txtarea").value = myString; 
    document.getElementById("output").innerHTML = myString; 
} 
+2

您需要發佈您的代碼。 – BeardFist

+0

我編輯帖子並添加了代碼 – m0j1

回答

1

好的,問題是在你的按鈕上嵌入onClick處理程序。只需將其移至您的script.js onLoad處理程序,它應該開始工作。首先添加一個id到按鈕,使這個很容易。

<input id="button" type="button" value="fix" /> 

接下來,拿到按鈕,添加的onclick

function myOnload(){ 
    var myString = document.getElementById("txtarea").innerHTML = ""; 
    var button = document.getElementById("button"); 
    button.onclick= function(){myClick()}; 
} 
... 

這裏是它的一個小提琴:http://jsfiddle.net/x2w2p/1/

+0

非常感謝,不幸的是它仍然無法正常工作。 – m0j1

+0

即使我打開html文件,它也不會以這種方式工作。 – m0j1

+0

@smtabatabaie我在我的onclick中犯了一個小錯誤,我更新了答案。 – BeardFist