【问题标题】:jQuery Insert external html page <title> into another html pagejQuery 将外部 html 页面 <title> 插入另一个 html 页面
【发布时间】:2015-11-19 17:35:15
【问题描述】:

我有两个文件 index.html 和 index2.html。这两个文件都在本地机器上的同一目录中(无法访问 PHP 等)。

我正在尝试

<title>Page Title</title>

从 index.html 并使用 jQuery 将其插入到 index2.html 中的 div.content 中。在 index2.html 我有:

$('.content').load("index.html title");

我尝试使用 jQuery .load() 但它不起作用,我看到 documentation 状态:

"jQuery 使用浏览器的 .innerHTML 属性解析检索到的文档并将其插入到当前文档中。在此过程中,浏览器通常会从文档中过滤出 、

或 <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 元素等元素. 因此,.load() 检索到的元素可能与浏览器直接检索到的文档不完全相同。” <p>如何从 index.html 中检索标题并使用 jQuery 将其放在 index2.html 中的 div.content 中?</p>

【问题讨论】:

  • 你的控制台有什么错误吗? .load() 方法实际上是在检索页面吗?
  • 控制台中没有错误,我能够将 index.html 的其他部分加载到 index2.html 中,例如 $('.content').load("index.html #header");

标签: javascript jquery html frontend


【解决方案1】:

我想你会想试试.get 方法:

$.get("index2.html", function( my_var ) {
    var title =  $(my_var).filter('title').text();
    //title contains the title of index2.html
});

请注意,这仅适用于同一域。如果您使用 'get' 调用您无法控制的外部域,您将收到 CORS 错误。

此外,这似乎不是最理想的方法,因为您基本上是在加载另一个 HTML 页面。不确定您的性能目标是什么,但我可能会想到另一种检索标题的方法。

【讨论】:

  • 谢谢! var title = $(my_var).filter('title').text(); 没有返回任何东西,但 $.get 方法有效。因为它返回一个 XML 文档,所以我可以使用 var title = my_var.title 来访问标题。我没有任何绩效目标。我只需要在本地为一个小型实用程序显示此信息。
  • 我认为这里最好使用jQuery.parseHTML(),因为它默认不解析脚本。所以最终结果将是$.get("index2.html", function( my_var ) { var title = $('&lt;div /&gt;').append($.parseHTML(my_var)).find('title').text(); //title contains the title of index2.html });
猜你喜欢
  • 1970-01-01
  • 2014-12-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多