插入到站点后修改脚本

Modify Script When Inserted into Site

本文关键字:修改 脚本 站点 插入      更新时间:2023-09-26

我有代码是从外部站点拉脚本。

var url = "//example.com/script-url.js";
 $.ajax({
  url: url,
  dataType: 'jsonp'
});

它工作得很好,但是,它提取的脚本是由第三方站点生成的。它拉在我需要修改的脚本,当它加载到我的网站。

第三方脚本是这样开始的:

(function() {
   document.getElementById("weedmenuPane").innerHTML = //script continues
脚本中的

weedmenuPane的另一个实例。

我需要修改ID weedmenuPane为另一个ID。有没有办法做到这一点,当脚本插入到我的网站?

注意:我没有控制第三方脚本被插入到网站。

由于该脚本来自第三方站点,因此它是一个跨源脚本。因此,您不能使用Ajax调用直接检索它,除非它所在的服务器恰好支持CORS。

从客户端,它只能作为JSONP使用,通过插入它作为<script>标记,将在您有机会修改它之前立即执行它。所以,运气不好。

另一种选择是让客户端从服务器请求脚本。然后,您的服务器可以从其他站点检索它(当您的服务器访问时没有跨域限制)。然后,您的服务器可以在将脚本返回给客户端之前修改脚本。


仅供参考,另一个解决方法似乎也许你可以暂时修改你的网站使用weedmenuPane id,而脚本运行(这样它就可以在你想要的对象上操作),然后在脚本运行后,你可以恢复id到任何你之前。