脚本标记加载了type =“text / html”和src =“...”,但被jQuery忽略

时间:2011-07-10 01:37:47

标签: jquery firefox header firebug jquery-templates

我的页面有一个标记:

    <script id='header' src='/Templates/Shared/Header.tmpl.html' type='text/html'></script>

Firebug告诉我Firefox 5正在请求此资源。在HTML选项卡上,我可以导航到script元素并看到它包含/Template/Shared/Header.tmpl.html的内容。

然而,jQuery坚持脚本标记为空。 $('#header')。html()返回一个空字符串。我不明白为什么。

是的,我可以使用$ .get()加载文件并使用$('#header')。html(data)来设置内容。然后我可以按照我的预期使用它。这显然会产生第二个请求,我想避免。

1 个答案:

答案 0 :(得分:1)

这是一个老问题,但仍存在于Firefox中。我使用了一种解决方法:

function getHtml(selector) {
  var $element = $(selector);
  var html = $element.html();

  if (!html ) {
    // copy all the children elements to a dummy DIV, which, unlike the SCRIPT have no problem providing the html in Firefox
    html= $('<div />').append($element.children().clone()).html();
  }
  return html;
}