Я думаю, вы поступаете неправильно. Если уведомление - это переменная в глобальном пространстве, вы можете просто заменить ее как обычно.
window.someObject.notice = window.someObject.notice.replace("&sid=","&sid="+kwd);
Это, конечно, будет работать, только если уведомление - это переменная, к которой можно перемещаться в глобальном пространстве имен и которая не находится внутри замыкания. Он находится внутри замыкания, если имеет var
объявление внутри function() {...}
Но, предполагая, что к этой переменной есть глобальный доступ, это будет ваш самый простой способ достичь этого.
Если нет, вы можете попытаться захватить содержимое скрипта и выполнить его с надеждой перезаписать исходный код. Это будет работать только в том случае, если ваш сценарий и извлекаемый сценарий имеют одно и то же происхождение (домен, поддомен, порт, протокол, несколько других вещей) - в противном случае это невозможно из-за _ Одинаковой политики происхождения _
Предполагая, что вы находитесь в одном источнике, вы можете сделать что-то вроде этого (используя 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);
});
} )()
Нечто подобное может сработать.