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

这是我到目前为止所要做的:

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

我应该向 onclick 部分添加什么才能获取当前页面的标题?无论它是什么,都会在 URL 中作为“title=”传递。

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

所以我想填补这些空白:

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

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

有帮助吗?

解决方案

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

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

其他提示

有几种方式来获得所选择的文本,不同的浏览器实现不同的:

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

我建议使用的包装功能,使可用于支持上述任何方法的所有浏览器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)更改文档的地址

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top