javascript - 使用 jquery 检索原始 html,而不是呈现的 html

标签 javascript jquery iframe twitter

我在网站上添加了 Twitter 时间线。它呈现并且如果我单击页面上的查看源代码,我可以看到我添加到该站点的相同 Twitter 小部件 html:

<div id='twitterDiv'>
    <a class="twitter-timeline"
      href="https://twitter.com/twitterName"
      data-widget-id="123456789012344567">
    Tweets by @goodName
    </a>
    <script type="text/javascript">
    window.twttr = (function (d, s, id) {
      var t, js, fjs = d.getElementsByTagName(s)[0];
      if (d.getElementById(id)) return;
      js = d.createElement(s); js.id = id; js.src=     "https://platform.twitter.com/widgets.js";
      fjs.parentNode.insertBefore(js, fjs);
      return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
    }(document, "script", "twitter-wjs"));
    </script>
</div>

但是当我使用 jquery 从包含它的 div 中获取 html 时,$('#twitterDiv').html(); 它会检索 twitter 生成的渲染 iframe 而不是原始 html:

<p data-twttr-id="twttr-sandbox-0"><iframe style="border: none; max-width: 100%; min-width: 180px; width: 238px;" height="600" scrolling="no" frameborder="0"></iframe></p>
<p>
<script type="text/javascript">
window.twttr = (function (d, s, id) {
  var t, js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id; js.src= "https://platform.twitter.com/widgets.js";
  fjs.parentNode.insertBefore(js, fjs);
  return window.twttr || (t = { _e: [], ready: function (f) { t._e.push(f) } });
}(document, "script", "twitter-wjs"));
</script>

如何检索原始 html,而不是呈现的 iframe?

最佳答案

加载 Twitter 脚本时,它会用 iframe 替换原始 HTML。 JQuery 只能访问新的 HTML,不能访问原始的 HTML。

您可以做的是在加载 Twitter 脚本之前将原始 HTML 保存在一个变量中。

<a class="twitter-timeline" id=twitter-timeline1 ...>
Tweets by @goodName
</a>
<script type="text/javascript">
var original_twitter_html=document.getElementById('twitter-timeline1').innerHTML

window.twttr = ...
</script>

您稍后可以在 Javascript 中使用此变量。

关于javascript - 使用 jquery 检索原始 html,而不是呈现的 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27404477/

相关文章:

javascript - 在 Javascript 中迭代 Java 列表?

javascript - 无法使用 "window.onbeforeunload"更改网页位置

javascript - 尝试使 IE 在文本框中的 Enter 键上触发更改

c# - 在 iframe 中使用 .net core 2 AuthorizationHandler 时,为什么身份为 null

javascript - Flux store 对特定的 React 组件而不是所有组件发出更改。

javascript - 如何在一个屏幕而不是整个应用程序中处理退出应用程序 - React Native?

javascript - jquery ajax响应: difference between Chrome and Firefox

javascript - 从 iframe 中的纯 JavaScript 调用 Ember 操作

javascript - jQuery/CSS - 单击 iframe 内容内的按钮时更改 IFRAME 高度

javascript - Canvas 淡出粒子