无法使用带有bookmarklet的书签到POST表单

时间:2012-03-09 00:14:24

标签: javascript bookmarklet

表格如下:

 <form action='localhost/test.php' method='post' target='test'>
 <input type='text' name='add_to_url' value='' />
 <input type='submit' name='submit' value='Go' />
 </form>

我甚至无法接近任何事情。

理想情况下,bookmarlet会使用当前网页网址作为add_to_url值,然后提交表单。

任何线索?

2 个答案:

答案 0 :(得分:0)

要获取当前页面的网址,您需要使用location.href Javascript属性。

要开始开发bookmarklet,您可以浏览以下链接: http://www.bookmarklets.com/tools/categor.html http://betterexplained.com/articles/how-to-make-a-bookmarklet-for-your-web-application/

此外,您可以在Search Bookmarklets

上搜索bookmarklets Javascript代码

答案 1 :(得分:0)

下面是创建表单并发布它的Javascript代码。您可以像get2post('http://site.com?a=1&c=2');

一样使用它

这是一个简单的bookmarklet生成器,或google for others:http://chris.zarate.org/bookmarkleter

function get2post(u, t) { // u = url, t = target
    var p = u.split('?')[0];
    var q = u.split('?')[1].split('&');
    var d = document;
    var f = d.createElement("form");
    f.setAttribute('action', p);
    f.setAttribute('method', 'POST');
    f.setAttribute('target', t || '_parent');
    f.style.display = 'none';
    for (i = 0; i < q.length; i++) {
        var e = d.createElement("input");
        var param = q[i].split('=');
        e.name = param[0];
        if ( param.length >= 2 ) e.value = decodeURIComponent(param[1]);        
        f.appendChild(e);
    }
    d.body.appendChild(f);
    f.submit();
}