0

私はGoogle Chrome拡張機能を書いています。2 つのテキストエリアとボタンがあります。ボタンがクリックされると、最初の textarea からコードが取得され、いくつかのロジックが実行されてから、2 番目の textarea に出力が表示されます。ブラウザで .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;
}
4

1 に答える 1

1

さて、問題はonClickボタンのインライン ハンドラです。それを script.jsonLoadハンドラーに移動するだけで、動作を開始するはずです。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/

于 2013-04-12T16:10:49.517 に答える