我有一个动态加载代码的脚本。它是一种搜索引擎。当我按下搜索按钮时,将触发操作并打开一个包含许多参数的新页面。
我想覆盖新 URL 中脚本生成的参数之一。 JS 代码很大而且很难阅读,但我在 Firebug DOM 编辑器中找到了重要的部分。
这是执行搜索时生成的 URL 的模式:
http://www.example.com/...?ParameterOne=123&ParameterTwo=Two&ThisParameter=Sth&ParameterFour=Four...
我要编辑的是“ThisParameter”并改变它的值。这是在 DOM 中编辑的部分,它执行我想要的操作:
Foobar = {
_options: [],
...
var options = {"ParameterOne":123,"ParameterTwo":"Two","ThisParameter":"ABC","ParameterFour":Four,...}
...
这是在 Firebug 的 DOM 选项卡中选择“复制路径”时“ThisParameter”的输出:
_options[0].ThisParameter
我想知道这是否可能。是什么让我认为它是,事实上我可以在 Firebug 中更改此参数并且它工作得很好。所以,如果 Firebug 可以编辑它,应该有办法用另一个脚本来影响它。
期待任何建议,提前致谢!
最佳答案
由于您无法编辑动态脚本,您有以下选择:
- 您必须尝试为脚本提供正确的输入并希望它使用您的值。
- 将脚本添加到结果页面,它将读取 url 和参数,更改它并重定向,正如我们讨论的那样 here . (如果您将所有内容都放在函数中,并且函数的名称是唯一的,那么它不应与动态脚本冲突。)
您可以尝试使用搜索按钮向页面中添加类似于此 jQuery 代码的内容:
$('input[name=search_button_name]').click(function(e) {
e.preventDefault();
var form_search = $('#search_form_id');
$('<input>').attr({
type: 'hidden',
name: 'ThisParameter',
value: 'SomethingElse'
}).appendTo(form_search);
f.submit();
});
关于javascript - 如何覆盖从另一个脚本加载的可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13036770/