在 chrome 扩展中使用 javascript

Posted

技术标签:

【中文标题】在 chrome 扩展中使用 javascript【英文标题】:Use javascript in chrome extension 【发布时间】:2016-09-12 15:33:50 【问题描述】:

我正在尝试创建一个测试 Chrome 扩展程序,以便在文本区域中输入一些文本并在用户按 Enter 时提醒它。

我的 main.html

<html>
<head>
<script src="jquery.js"></script>
<script>

function doAlert(e)

    if(e.which == 13) 

        alert($('.myword').val());
        e.preventDefault();

    



</script>
</head>
<body>
<textarea class="myword" onkeyup="doAlert(event)"placeholder="Fill me" rows="1" cols="32" style="resize: none;"></textarea>
</body>
</html>

在浏览器中执行文件通常会产生预期的结果。但是在我的扩展弹出窗口中,我根本没有得到回复。

请帮忙。提前致谢。

【问题讨论】:

扩展的控制台是否有错误? 没有。没有。 【参考方案1】:

由于内容安全政策,内联 javascript 无法在 chrome 扩展程序中运行。您将必须创建外部 js 文件。 将您的“doAlert”函数放入一些文件 alertTest.js 内联事件处理程序也不起作用。您需要在 js 文件中绑定事件处理程序。 例如

main.html

<html>
   <head>
      <script src="jquery.js"></script>
      <script src="alertTest.js"></script>
   </head>
   <body>
     <textarea class="myword" id="textBox" placeholder="Fill me" rows="1" cols="32" style="resize: none;"></textarea>
   </body>
</html>

alertTest.js

function doAlert(e)

    if(e.which == 13) 
       alert($('.myword').val());
       e.preventDefault();
    
 

 document.addEventListener('DOMContentLoaded', function () 
   document.getElementById('textBox').addEventListener('keyup', doAlert);

 );

这是相同的文档:https://developer.chrome.com/extensions/contentSecurityPolicy#JSExecution

【讨论】:

以上是关于在 chrome 扩展中使用 javascript的主要内容,如果未能解决你的问题,请参考以下文章

在 Chrome 扩展中使用 javascript/jquery 访问框架的 DOM

在 chrome 扩展中运行 jquery 之前的 javascript [关闭]

在 Chrome 扩展程序中运行 Javascript -> 基本?

使用 JavaScript 将 Chrome 扩展注入 iFrame

clearInterval无法在javascript chrome扩展中使用

使用 javascript 为 chrome 扩展截取屏幕截图