繁体   English   中英

除了 URL 之外,如何让这个“共享”按钮获取当前 URL 的 HTML 标题?

[英]How do I get this “Share” button to grab the current URL's HTML title in addition to URL?

我是一名 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部分添加什么来获取当前页面的标题? 无论它是什么,都会在 URL 中作为title=传递。

奖励:我可以添加一些东西来发送当前页面中的一些突出显示的文本吗? 这将在 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% 确定我有 + 和 ' 在正确的位置。

我想你想要document.title 获取选定的文本有点复杂,尤其是如果您想支持 IE。 DOM 标准是window.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 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM