0

我对 JavaScript 非常陌生,我想为我使用的网络服务构建一个书签。我需要从任何页面抓取文本,加载服务表单并将文本发布到表单的文本字段中。到目前为止,我得到了这个:

// grab text
javascript:(function(){var t=window.getSelection?window.getSelection().toString():document.selection.createRange().text;t="You selected: "+t;alert(t);})()

//load form
document.onload=function(){window.location=%22http://www.streetmails.com/index.php%3Fc=mailing%26a=content%22})();

//paste text into form
window.onload=function%20D(a,b){c=b.split('|');d=false;for(q=0;q<c.length;q++){if(c[q]==a)d=true;}return%20d;}function%20E(){f0=document.forms[0];f0['subject'].value='news from London';f0['content'].value='<echo$_GET['t']?>';f0[''].value='Add%20a%20picture...';f0['topicId'].value='4';}E

你能帮助我吗?我搜索并不断尝试,但无法让它运行....提前致谢!

4

1 回答 1

0

您不能完全使用书签来完成您想要做的事情。执行小书签时,您正在当前网页中执行 Javascript。在一个 Web 域的网页中运行的 Javascript 无法与来自不同 Web 域的页面进行交互。document.onload几乎永远不会在书签中起作用,因为通常在您单击书签之前已经加载了网页。

让我们将带有文本的页面称为“文本页面”。让我们将表单称为“表单页面”的页面。Web 表单总是提交给另一个页面或提交给它自己。这取决于表单的action值。让我们称之为操作页面。表格可以通过GET或 通过提交POST

要使用小书签完成您的目标,通常所做的是小书签将在文本页面上创建一个表单,然后将该表单直接提交到操作页面。

如果操作页面将接受 GET(仅查询字符串值),那是最简单的。在这里寻找许多这样的例子:https ://www.squarefree.com/bookmarklets/search.html

如果操作页面需要 POST,那就有点复杂了,因为您必须使用 Javascript 来创建表单:http ://www.google.com/search?q=javascript%20create%20form

插件、扩展和用户脚本可以用来更直接地做你想做的事,因为它们不仅限于在当前域中运行,当然它们的编程更复杂。

于 2012-12-17T14:38:13.937 回答