1

我是一个 JavaScript 新手,试图构建一个基本的共享按钮作为一个学习项目。我对一个方面有点难过。虽然我可以获取当前页面的 URL 并将其传递到预填充共享表单的 URL,但我不确定如何获取 HTML 标题。

这是我必须要做的:

<a href="http://www.example.com/submit" onclick="window.location = 'http://www.example.com/submit?url=' + encodeURIComponent(window.location); return false;"> Share This </a> 

我应该在该onclick部分中添加什么来获取当前页面的标题?无论它是什么,都将像title=在 URL 中一样传递。

奖励:我可以添加一些内容以从当前页面发送一些突出显示的文本吗?这将在 URL 中作为body=

所以我想填补这些空白:

<a href="http://www.example.com/submit" onclick="window.location = 'http://www.example.com/submit?url=' + encodeURIComponent(window.location); return false; + 'title=' + SOMETHING + 'body=' + SOMETHING'"> Share This </a>

至少我是这么认为的。我不是 100% 确定我的 + 和 ' 在正确的位置。

4

2 回答 2

2

我想你想要document.title。获取选定的文本有点复杂,特别是如果你想支持 IE。DOM 标准是window.getSelection但对于 IE,你必须弄乱范围- 我没有检查 IE8 中的情况是否有所改善。

我还想问,分享按钮在哪里?如果它在页面中,则单击该按钮将取消选择已选择的文本。

于 2009-06-25T14:08:16.013 回答
0

获取选中文本的方式有多种,不同的浏览器实现的方式不同:

首先是document.getSelection(),它将所选文本作为字符串返回。然后,有window.getSelection(),它将返回一个选择对象。要获取原始文本,请使用其toString()方法。获取文本的 IE 方式使用范围,即document.selection.createRange().text.

我建议使用 wrapper-function 使document.getSelection()所有支持上述任何方法的浏览器都可用:

if(typeof document.getSelection === 'undefined') {
    document.getSelection =
        window.getSelection ? function() {
            return window.getSelection().toString();
        } :
        document.selection ? function() {
            return document.selection.createRange().text;
        } :
        null;
}

附带说明:您应该设置location.href(而不是location)更改文档的地址。

于 2009-06-25T14:24:25.840 回答