【问题标题】:How to get the content of an external <script> object without calling the src URL again?如何在不再次调用 src URL 的情况下获取外部 <script> 对象的内容?
【发布时间】:2018-10-22 11:06:07
【问题描述】:

有一个页面是这样的:

<html>
    <head>
        ...
        <script type="text/javascript" src="http://someserver/jquery-2.1.0.min.js"></script>
        <script type="text/javascript" src="http://someserver/getJS?key=123456" ></script>
        ...
    </head>
    ...
</html>

还有getJS的内容

$(document).ready(function() {
    ...
}

每次加载页面时都会动态生成密钥,就像会话密钥一样。脚本http://someserver/getJS?key= 对于每个键只能访问一次。在第二次访问时,它返回NULL。但是,从 Chrome 的开发者工具中查看,getJS 的内容缓存在资源/应用面板中。

我的问题:

  1. 使用 GreaseMonkey 脚本或 sn-p,如何在不调用 URL 再次的情况下以字符串形式访问任何 external 脚本对象的内容?? p>

  2. 在 Chrome 的 DevTools 中,如何访问 sn-p 中 Resources/Application 面板下的任何脚本(和其他对象)?

【问题讨论】:

  • 你想在这里做什么,究竟?将脚本作为字符串用于什么目的?脚本中的所有函数都可以在脚本加载后随时从页面调用。
  • 目前我手动打开资源面板,进入getJS脚本,复制密钥,粘贴到我的sn-p,然后运行。
  • getJS 中只有 1 个函数,document.ready 函数。准备功能中有一个键。我的greasemonkey 脚本/sn-p 实际上是一个修改后的就绪函数,当函数将某些内容发送回服务器时,需要密钥。
  • 是的,所以这是开发人员(我猜不是你)设计为仅在页面加载时运行一次的脚本。这个脚本做了一些事情(可能无关紧要),然后将一些数据返回给服务器。您想使用油脂猴来劫持脚本,运行一些不同的计算,并将某些东西(可能是意外的)返回给服务器。对吗?
  • 似乎有问题的脚本是iife,这意味着它在创建后立即被调用。另见:stackoverflow.com/a/32226159/2495283

标签: javascript google-chrome google-chrome-devtools tampermonkey


【解决方案1】:

不确定我是否正确解释了您的问题,但如果您尝试做我认为您想做的事情...您可以使用 Javascript 动态创建 &lt;script&gt; 元素,更改其 @ 987654324@ 属性,并将其附加到 DOM。

(function() {
  var body             = document.querySelector('body');
  var externalScript   = body.createElement('script');
  externalScript.src   = "https://host.com/script.js";
  document.body.appendChild(externalScript);
})()

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 1970-01-01
  • 2019-02-19
  • 1970-01-01
  • 2015-12-01
  • 1970-01-01
  • 2017-09-29
相关资源
最近更新 更多