我是一个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 =”传递。
奖励:我可以添加一些东西来发送当前页面中的一些突出显示的文本吗?这将在URL中作为“body =”
所以我想填写这些空白:
<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>
至少我是这么认为的。我不是百分百肯定我已经把+和's'放在了正确的位置。
答案 0 :(得分:2)
我想你想要document.title。获取所选文本有点复杂,特别是如果您想支持IE。 DOM标准是window.getSelection但是对于IE,你必须使用ranges - 我没有检查IE8中的内容是否有所改进。
另外我想问一下,分享按钮在哪里?如果它在页面中,则单击该按钮将取消选择所选文本。
答案 1 :(得分:0)
有多种方法可以获取所选文本,不同的浏览器实现不同的文本:
首先,有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
)来更改文档的地址。