我尝试创建一个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()})();
答案 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();})()