0

我正在写一个谷歌浏览器扩展。它有两个文本区域和一个按钮。单击按钮后,它会从第一个 textarea 获取代码,对其执行一些逻辑,然后在第二个 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>

脚本.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 回答