Bookmarklet将URL传递给表单字段

时间:2012-06-13 22:06:52

标签: javascript forms url bookmarklet

我想创建一个书签,允许用户在浏览时动态地从网站提交URL。

我正在寻找这个书签的三种可能实现方式。

  1. 只需点击书签,然后转到带有我的表单字段的页面,并在字段中输入他们刚来的网址

  2. 只需点击书签,然后转到带有我的表单字段的页面,并将上一页中突出显示的链接输入到该字段中。

  3. 首选选项 - 点击书签,打开一个弹出窗口(类似于推特的大小和功能的推文框),我的表单字段预填充了他们点击了书签的页面的网址< / strong>即可。就像Twitter的推文框和facebook的分享框一样。

1 个答案:

答案 0 :(得分:0)

我通常不只是放弃代码,但这很简单,我觉得值得分享和解释。

压缩:

javascript:(function(f,s,n,o){window.open(f+encodeURICompnent(s),n,o)}('http://example.com?url=',window.location,'yourform','width=300,height=200'));

扩展

(function (formurl, site, name, options) {
    window.open(
        formurl+encodeURIComponent(site),
        name,
        options
    );
}('http://example.com?url=', window.location, 'yourform', 'width=300,height=200'));

这种方法的工作原理是它只是调用一个匿名闭包来将变量传递给window.open函数。它将当前页面的位置作为查询字符串中的uri值传递。

在包含表单的页面上,您需要使用查询字符串中的值填充正确的字段。

虽然这可以在不使用闭包的情况下编写,但是你需要确保没有被调用的东西返回值,因为javascript:<string value>将使用{{<string value>中的任何文本重新编写DOM。 1}}。