提交按钮并输入网址

时间:2017-06-26 17:13:18

标签: javascript forms bookmarklet

我尝试创建一个bookmarklet,它捕获用户所在的当前页面的url,将此url放入页面上表单的文本字段,然后通过提交表单虚拟按提交按钮。

使用以下代码我获取当前页面的网址,使用网址http://example.com/?url=http://www.url-of-the-current-page转到网站,将网址http://www.url-of-the-current-page填入表单的文本字段,但表单本身仍然存在未提交:

javascript:(function(){ window.open('http://example.com/?url='+encodeURIComponent(location.href))})();

但我如何提交表格按钮?整个表格看起来像:

<form ng-submit="launchTest()" class="ng-pristine ng-valid"> 
<input type="text" name="url" ng-model="url"> 
<input type="submit" value="Launch test" class="launchBtn" ng-class="{disabled: !url}"> 
</form> 

我尝试了两种变体 - 并且失败了:在两种变体中我都留在http://example.com?url=http://www.url-of-the-current-page

javascript:(function(){ window.open('http://example.com/?url='+encodeURIComponent(location.href));document.forms[0].submit()})();

javascript:(function(){ window.open('http://example.com/?url='+encodeURIComponent(location.href));document.forms[this.form.id].submit()})();

1 个答案:

答案 0 :(得分:1)

(代表OP发布)

我已经联系了网站的所有者,我想在哪里运行我的书签 - 他说,我的书签是正确的,但是对于提交表单,网址应该包含一个特殊参数,例如&run=1。使用此参数,此线程中提到的每个书签都可以正常工作(工作方式不仅可以打开新选项卡并输入URL,还可以提交表单)。我将使用的工作书签是:

javascript:(function(){var win=window.open('http://example.com?url='+encodeURIComponent(window.location.href )+'&run=1','_blank');win.focus();})()