【问题标题】:pass multiple innerhtml to update twitter status and encode传递多个innerhtml来更新twitter状态和编码
【发布时间】:2011-06-19 10:19:42
【问题描述】:

我正在尝试创建一个链接,将多个 div 的动态可怕内容全部作为一个句子发送推文

Javascript

function toggle(){
      var joe = document.getElementById("fulltxt");
      document.getElementById("tweet").setAttribute('href','http://twitter.com/home?status=' + 

joe.innerHTML)
  }

我要发的内容

<div id="fulltxt">
<div id='action'> actiontext </div>
<div id='reason'> reasontext</div>
<div id="party"> partytext </div>
</div>

推文链接

<a id="tweet" href='#' onClick="toggle(this.value)">שתף בטוויטר</a>

我遇到的问题是

Invalid Unicode value in one or more parameters /intent/tweet?source=webclient&amp;text=%3Cdiv+id%3D%22action%22%3E%F9%EC%E5%ED%3C%2Fdiv%3E%E5%E6%E4+%E1%E2%EC%EC%3Cdiv+id%3D%22party%22%3E%E1%E9%E1%E9+%F0%FA%F0%E9%E4%E5%3C%2Fdiv%3E

可能有两个问题

  1. html 标签 - 所以我需要将单个 div 的(动作 + 原因 + 派对)串在一起,而不是使用 fulltxt
  2. 语言 -(它是希伯来语)我认为这可能是编码问题

为了测试它,我用其中一个 div 的 id 替换了函数中的 fulltxt,当单个 div 的内容是英文时它可以工作,但是当它是希伯来语时它给我一个错误

【问题讨论】:

    标签: javascript innerhtml encode getelementbyid


    【解决方案1】:

    你是对的,这是一个编码问题。此外,innerHTML 将包含嵌套 div 的标签。 IE支持innerText,其余使用textContent

    function toggle(){
      var joe = document.getElementById("fulltxt");
      var text = joe.textContent?joe.textContent:joe.innerText;
      document.getElementById("tweet").setAttribute('href','http://twitter.com/home?status=' + 
      encodeURIComponent(text);
    }
    

    encodeURIComponent

    编码统一资源标识符 (URI) 组件通过替换每个 某些字符的实例由一个, 两个、三个或四个转义序列 表示 UTF-8 编码的 字符(将只有四个转义 由以下组成的字符的序列 两个“代理”字符)。

    【讨论】:

    • 伟大的作品只有一部分现在我如何将各个 div 的内容串在一起
    • innerText 而不是内部 html
    • 啊,是的,抱歉。我错过了
    猜你喜欢
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2012-03-13
    • 2016-03-12
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多