【问题标题】:How do I get this "Share" button to grab the current URL's HTML title in addition to URL?除了 URL 之外,如何获取此“共享”按钮来获取当前 URL HTML 标题?
【发布时间】:2009-06-25 13:57:17
【问题描述】:

我是一名 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% 确定我的 + 和 ' 在正确的位置。

【问题讨论】:

  • 不是一个答案,但您应该知道 Internet Explorer 对其可以浏览的 URL 的长度有限制。该限制为 2048,如果 URL + 标题超过此限制,则会进行一些修剪。

标签: javascript button onclick bookmarklet share


【解决方案1】:

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

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

【讨论】:

  • 这将是一个 HTML 按钮,任何人都可以放入他们的博客,让他们“提交”到我的通用 Digg 克隆的提交表单。我认为制作这样的按钮将是一个可靠的学习项目。
  • 好的,那么我认为当用户单击按钮时,文本被取消选择会出现问题。您可以通过找到相邻的文本元素并选择它来解决问题,但您最终可能不得不为不同类型的博客实现不同的按钮。如果您将其实现为小书签而不是按钮,它可能会起作用。
【解决方案2】:

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

首先是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)来更改文档的地址。

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 1970-01-01
    • 1970-01-01
    • 2022-11-17
    • 2019-09-23
    • 2021-01-15
    • 2012-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多