gpt4 book ai didi

javascript替换js文件中的字符串

转载 作者:行者123 更新时间:2023-11-29 22:26:40 24 4
gpt4 key购买 nike

好的,我遇到了另一个问题我有一个 js 文件需要包含在我的页面上(我无权编辑此 js 文件)

在该 javascript 中有一个函数,其中有一行我需要在其中编辑一个变量。

假设:

代码:

var links     = [{"offer_id":"1","title":"Text!","url":"http:\/\/www.site.com\/tracker\/1\/?http:\/\/site.com\/click.php?aff=9917&camp=5626&crt=13346&sid=e6a00014f247fe39de1b_1","footer_text":"text","blank_referrer":"1","active":"1","value":"0.40","creation_time":"1327785202"}];


notice : '&sid=e6a00014f247fe39de1b_1'

我需要在 sid= 之后添加一些东西这样我就变成了例如:代码:

&sid=AlssfIT_e6a00014f247fe39de1b_1 

我补充说:AlssfIT_

任何想法如何实现这一目标?我试过类似的东西代码:

str.replace("&sid=","&sid="+kwd); 

在我“包含”js 文件之后,但显然不起作用

最佳答案

我认为你的做法是错误的。如果 notice 是全局空间中的变量,您可以正常替换它。

window.someObject.notice = window.someObject.notice.replace("&sid=","&sid="+kwd); 

这当然只有在 notice 是一个在全局命名空间中可导航到且不在闭包内的变量时才有效。如果它在 function() {...}

中有一个 var 声明,它就在一个闭包中

但是,假设可以全局访问该变量,那将是实现这一目标的最简单方法。

如果没有,您可以尝试获取脚本的内容并执行它,希望能覆盖原始代码。 这仅在您的脚本和您正在获取的脚本来自同一源(域、子域、端口、协议(protocol)和其他一些东西)时才有效——由于 _同源策略,否则这是不可能的_

假设你们是同源的,你可以做这样的事情(为简单起见使用 jquery)

( function() {
// First we need the url of the script, we can grab it out of the element directly or it can be hard coded
var scriptLocation = $('script#the-id-of-the-script-element').prop('src');

// Now that we have the location fetch the script again so we can get it as plaintext
// this will usually not do another HTTP request since your browser has it cached
$.get(scriptLocation).done(function(text) { // I prefer the deferred syntax as being more explicit, this is equivalent to $.get(scriptLocation, function(text) {
var newText = text.replace("&sid=","&sid="+kwd);
eval(newText);
});
} )()

像这样的东西可以工作。

关于javascript替换js文件中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9049580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com