使用jQuery在BODY标记结束之前放置脚本

时间:2013-03-25 22:45:33

标签: javascript jquery google-chrome-extension

这是我在body标签之前想要的脚本:

<script type="text/javascript">
  var vglnk = { api_url: '//api.viglink.com/api',
                key: '89dcd0a12ff35d227eaaaff82503030b' };

  (function(d, t) {
    var s = d.createElement(t); s.type = 'text/javascript'; s.async = true;
    s.src = ('https:' == document.location.protocol ? vglnk.api_url :
             '//cdn.viglink.com/api') + '/vglnk.js';
    var r = d.getElementsByTagName(t)[0]; r.parentNode.insertBefore(s, r);
  }(document, 'script'));
</script>

我希望这段代码能够放在“HERE”

的位置
<html>
<head>
</head>
<body>
some html and stuff
HERE
</body>
</html>

我如何在jQuery中解决这个问题? (我是通过扩展来实现的。主要是在Chrome中,还有FF和IE。)

感谢任何帮助。

2 个答案:

答案 0 :(得分:5)

您需要content script在您想要的每个页面上执行插入操作。

内容脚本的代码非常简单,不需要jquery。

var code = "your script code here";
var script = document.createElement("script");
script.setAttribute("type", "text/javascript");
script.appendChild(document.createTextNode(code));
document.body.appendChild(script);

因为只有在您甚至不需要定义函数时才会调用它。 您可以在内容脚本附加的任何Web上使用调试器调试代码(F12),您将在内容脚本选项卡中看到您的代码。

答案 1 :(得分:0)

关于添加jQuery的最佳位置我有同样的问题:标题还是正文标记之前?答案是没关系。

整个页面(或DOM)需要初始化或加载才能完成您正在做的事情。 和.. 正文中的信息越多,您就越需要确保加载文档。

上述两句话是多余的,因为:

所有jQuery ui / basic语法/小部件等都是通过以下方式触发的: $(document).ready( function() { $("#some_id").click( function { MORE CODE HERE }); });

上面的代码意味着需要在jQuery运行之前加载完整的html页面(或'document'),也就是初始化。

有一个命令需要加载jQuery才能使用ui。实际的库需要先是,然后是ui。该库可以从jquery.com下载并上传到设计师网站空间或通过CDN(内容显示网络)来节省带宽。以下是订单应该如何的示例:

<script src="http://code.jquery.com/jquery-1.6.4.min.js" ></script> <script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js" ></script>

注意库是第一行,然后是UI,在这种情况下我加载了jquery mobile。

总而言之,这并不重要,主要是偏好。更多https://forum.jquery.com/topic/unclear-where-document-ready-goes#14737000004139019