【问题标题】:Google chrome extension not executing javascript code?谷歌浏览器扩展不执行 javascript 代码?
【发布时间】:2018-07-09 23:54:54
【问题描述】:

我正在尝试制作一个 google chrome 扩展程序,以在您打开新标签时显示日期。但是,我的代码根本没有执行 javascript 代码。我知道该部分之外的代码有效,因为我通过在打开新选项卡时显示“打开新选项卡”对其进行了测试。它只是不显示日期。任何帮助将不胜感激:)

<!DOCTYPE html>
<html>
<body bgcolor="C1E9E1" onload="displayDate();">
    <div>new tab opened</div>
    <p id="data"></p>
    <script type ="text/javascript">
        function displayDate(){
            var day =  new Date();
            var y = day.getFullYear().toString().substr(-2);
            var m = day.getMonth() + 1;
            var d = day.getDate();
            if(m < 10){
                m = "0"+m
                }
            if(d < 10){
                d = "0"+d
                }
            var dateFormat = m + " " + d + " " + y
            document.getElementById("data").innerHTML = dateFormat;
            } 
    </script>
</body>

【问题讨论】:

  • 可能是onload没有执行,你有没有试过在script标签里面的函数后面加displayDate()
  • 您是否尝试过使用IIFE

标签: javascript html google-chrome date


【解决方案1】:

不要使用带有 chrome 扩展的内联脚本。您需要从单独的 js 文件中获取脚本。

示例: &lt;script src="myscript.js"&gt;

在此之后应该可以工作,或者至少可以让您正确调试。 它可能适用于非常少的逻辑,但肯定会遇到更进一步的问题。

并且在您的 manifest.json 中包含 content_scripts 项。

"content_scripts": [
    {
      "css": ["mystyles.css"],
      "js": ["myscript.js"]
    }
  ]

请参阅此问题以获得类似的解决方案: Chrome 18+: How to allow inline scripting with a Content Security Policy?

【讨论】:

  • 类似解决方法请参考本期:stackoverflow.com/questions/8502307/…
  • 谢谢!这使得调试变得更加容易。我现在的问题是我将多个函数(每个函数返回日期或时间)放在同一个脚本中,并且在 html 中调用该特定函数时遇到了麻烦。我一直在到处寻找它,但找不到任何有用的东西。你有什么想法?再次感谢!
  • @xerop 您可以尝试以下几件事:1.) 将您的&lt;script&gt; 标签放在&lt;body&gt; 的末尾。 2.) 不要内联调用你的函数。 3.)为了调试,在你的函数中添加console.log's
猜你喜欢
  • 1970-01-01
  • 2015-04-17
  • 2014-07-24
  • 2013-01-25
  • 2016-05-12
  • 2018-06-24
相关资源
最近更新 更多