【问题标题】:HTML form and JavascriptHTML 表单和 Javascript
【发布时间】:2017-12-19 03:11:12
【问题描述】:

我希望能够在表单中输入 url,这样当我按下“提交”时,它会重定向到不同的 url,但保留原始 url 中的参数。

简单地说,

https://www.google.co.uk/search?q=somequery

重定向到

https://www.google.com/search?q=somequery

我假设这可以通过简单的表单和 Javascript 来完成。

有人帮忙吗?

谢谢。

【问题讨论】:

  • 请在 Google 或其他搜索引擎上研究您的需求并尝试一下。然后,如果它不起作用,您可以在此处发布您现有的咖啡以及它的哪些部分不起作用。
  • @Loren 您的意思是“现有代码”而不是“现有咖啡”吗?

标签: javascript jquery html forms


【解决方案1】:

由于 URL 等基于文本的格式通常充满特殊情况,因此我更喜欢利用浏览器中已经嵌入的解析器:

document.getElementById('my-form').addEventListener('submit', function(e){
  e.preventDefault();
  var parser = document.createElement('a');
  parser.href = document.getElementById('url').value;
  window.location = 'https://google.com/search' + parser.search;
});
<form id="my-form">
URL: <input id="url" />
<input type="submit" />
</form>

(看起来 google 不喜欢嵌入到 iframe 中)

【讨论】:

  • 为什么要创建一个&lt;a&gt; 元素来解析URL?只需使用new URL(document.getElementById("url").value).search;
  • @Xufox 虽然我不知道我的解决方案是否适用于 IE,但您的肯定不行,这绝对是要记住的事情。
  • 我一直在尝试这个和其他一些代码示例,但无法让它工作。对我来说,它在这里或在 JSFiddle jsfiddle.net/Grove/4eeptak2/6 中不起作用我本来希望打开一个新标签,但没有任何反应。
  • @Packwood 打开一个新标签,您应该使用window.open 而不是window.location,例如this。这似乎不起作用,因为 Google 显然不喜欢嵌入到 iframe 中。
【解决方案2】:

嗯,我已经整理好了。 google.com 和 gogle.co.uk 之间似乎存在一些问题,没有像我预期的那样重定向。在另一对网站上,它按预期工作。

【讨论】:

    猜你喜欢
    • 2023-03-26
    • 2020-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多