除了 URL 之外,如何让“共享”按钮获取当前 URL 的 HTML 标题?
-
20-08-2019 - |
题
我是一个 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
)更改文档的地址
不隶属于 StackOverflow