【问题标题】:Dojo - Add an External stylesheet outside of the headerDojo - 在标题之外添加外部样式表
【发布时间】:2011-10-06 10:27:18
【问题描述】:

我想添加一个在 Ajax 调用中指定的外部样式表。

我已经找到了一种使用 jQuery 的方法(参见下面的示例),但是我需要使该方法适应 dojo JavaScript 框架。

JQuery 示例

$('head').append('<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">');

谢谢。

【问题讨论】:

    标签: javascript css dojo stylesheet external


    【解决方案1】:

    添加dojo.NodeList-manipulate 后,它几乎与jQuery 相同:

    dojo.require("dojo.NodeList-manipulate");
    
    dojo.ready(function(){
        dojo.query("head").append('<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">');
    });
    

    【讨论】:

    • dojo.require("dojo.NodeList-manipulate"); 行必须位于代码/文件的顶部,就像紧跟在 &lt;script&gt; 之后(或者类似的东西,我对 Dojo 不是特别熟悉)。它在这里工作:jsfiddle.net/thirtydot/e9q2u
    • @thirtydot: dojo.requires 只需要放在使用模块的任何东西之前(除非您使用 XDomain 构建,否则您需要将所有代码放在 dojo.ready 中)
    • @missingno:感谢您的信息!
    【解决方案2】:

    试试这个,使用 dojo.query

    dojo.query("head").forEach(function(node, index, array){
    // append content af final of head
    node.innerHTML += '<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">';});
    

    【讨论】:

    • dojo.query("head")[0].innerHTML += '&lt;link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css"&gt;';.
    【解决方案3】:

    我想出了

    经过一番折腾,我想出了以下几点:

    function require_css(href)
    {
       if (typeof href == 'undefined' || href.length == 0) return false;
    
       var link = dojo.create("link", 
       {
          type  : "text/css",
          rel   : "stylesheet",
          href  : href
       });
    
       dojo.doc.getElementsByTagName("head")[0].appendChild(link);
       console.log("loading : css : "+ href);
    }
    

    感谢大家的投入。我更喜欢三十点的方法来挖掘:D..

    【讨论】:

      猜你喜欢
      • 2012-03-07
      • 2011-11-08
      • 2012-03-27
      • 1970-01-01
      • 2011-09-23
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多