Chrome扩展程序复制和粘贴权限

时间:2013-04-12 00:47:53

标签: google-chrome google-chrome-extension permissions

我正在撰写Google Chrome扩展程序。它有两个textareas和一个按钮。单击按钮后,它将从第一个文本区域获取代码,对其执行某些逻辑然后过去并在第二个文本区域中显示输出。我在浏览器中打开.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;
}

1 个答案:

答案 0 :(得分: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/