javascript - 如何覆盖从另一个脚本加载的可变参数

标签 javascript jquery

我有一个动态加载代码的脚本。它是一种搜索引擎。当我按下搜索按钮时,将触发操作并打开一个包含许多参数的新页面。

我想覆盖新 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 可以编辑它,应该有办法用另一个脚本来影响它。

期待任何建议,提前致谢!

最佳答案

由于您无法编辑动态脚本,您有以下选择:

  1. 您必须尝试为脚本提供正确的输入并希望它使用您的值。
  2. 将脚本添加到结果页面,它将读取 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/

相关文章:

javascript - 用 sendBeacon 替代 AJAX

javascript - 无法使用 webpack-dev-server 调用 React.Component.setState()

jquery - 网格水平滚动条( float )

jQuery DIV click() 接管 DIV.IMG click()

javascript - 如何更改D3中x轴的标签

javascript - Json 数组对象转字符串逻辑

jquery - 当 view->zoom != 100% 时,IE 和 Chrome 中的 css/jquery 大小调整和绝对定位问题

javascript - 表单事件OnSave不执行Promise

javascript - 如何使用 ajax 将数据从 Flask 获取到我的模板?

javascript - 在Javascript中以编程方式触发鼠标移动事件