【问题标题】:AJAX html stubs -- is it practical to load clear out head elements?AJAX html 存根——加载清除头元素是否实用?
【发布时间】:2011-10-25 23:55:25
【问题描述】:

我正在尝试实现一个“尽可能简单”的解决方案,以便在后台加载页面。我几乎只想用来自 ajax 存根的元素替换我的 html 中的某些元素。我当然遇到了以下标准问题:

  1. JavaScript 依赖项
  2. 样式化依赖项
  3. 设置标题

我的 AJAX 存根相当简单——实际上,它是整个页面,放入未命名为 head 或 body 的标签中(jQuery/浏览器不喜欢解析这些节点)。例如:

<html-stub>
    <head-stub>
        <title>Page Title</title>
        <script type="text/javascript" src="somescript"></script>
        <link rel="stylesheet" type="text/css" href="somestylesheet">
    </head-stub>
    <article>Some Content to replace in the origin document</article>
</html-stub>

这样做是否安全/实用/完全愚蠢:

var stub = $(ajaxHTML);
var head = $(document).find('head');

// empty the current head -- later on we'll just empty things like title
head.empty();

// add all the crap
stub.find('stub-head').children().appendTo(head);

或者这只是一个非常糟糕的主意?我已经在现代浏览器中进行了测试,它似乎可以正常工作,在旧浏览器中是否也存在缺陷?

【问题讨论】:

    标签: javascript jquery html ajax dom


    【解决方案1】:

    我认为您的操作没有问题。您可以使用 JS 或 jquery 模板更简单地完成它。还假设您已经使用这种方法考虑了 SEO 和可访问性。

    【讨论】:

      【解决方案2】:

      动态内容通常以xml或json等格式发送。你的存根真的是 xml。然后设置所需节点的 innerhtml 属性。这与您正在做的事情非常相似。尝试给你的节点 id 属性。然后,您可以更轻松地访问它们。你可以这样说:

      document.getElementsByTag('p')[4].innerhtml = some_variable;
      

      document.getElementByID('dynamic_li').innerhtml = your_text;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多