2013-04-12 2 views
0

Google 크롬 확장 프로그램을 쓰고 있습니다. 두 개의 텍스트 영역과 버튼이 있습니다. 버튼을 클릭하면 첫 번째 텍스트 영역에서 코드를 가져 와서 논리를 수행 한 다음 두 번째 텍스트 영역에 출력을 표시합니다. 브라우저에서 .html 파일을 열 때 제대로 작동하지만 확장 기능으로 사용할 때 작동하지 않으며 단추를 클릭해도 아무 일도 발생하지 않습니다. 퍼미션과 관련이 있다고 생각합니다. 이미 "contextMenus", "clipboardRead", "clipboardWrite"권한을 내 매니 페스트 파일에 사용했지만 여전히 작동하지 않습니다.
누군가 나를 도와 주시면 감사하겠습니다.
감사
편집 : 코드
manifest.json을 :크롬 확장 복사하여 붙여 넣기 권한

{ 
    "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" /> 

다음, 그 버튼을 얻고이 온 클릭 여기

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