Dojo — добавить внешнюю таблицу стилей вне заголовка

#javascript #css #dojo #stylesheet #external

#javascript #css #dojo #таблица стилей #внешняя

Вопрос:

Я хотел бы добавить внешнюю таблицу стилей, указанную внутри вызова Ajax.

Я нашел способ сделать это с помощью jQuery (см. Пример ниже), однако мне нужно адаптировать метод к фреймворку JavaScript dojo.

Пример jQuery

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

Спасибо.

Ответ №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">');
});
  

Комментарии:

1. dojo.require("dojo.NodeList-manipulate"); Строка должна быть прямо вверху вашего кода / файла, например, сразу после <script> (или что-то в этом роде, я не особо знаком с Dojo). Здесь это работает: jsfiddle.net/thirtydot/e9q2u

2. @thirtydot: dojo.requires просто должен быть перед всем, что использует модуль (если вы не используете сборку XDomain, в этом случае вам нужно поместить весь код внутрь dojo.ready)

Ответ №2:

Попробуйте это, используя dojo.запрос

 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">';});
  

Комментарии:

1. dojo.query("head")[0].innerHTML = '<link rel="stylesheet" type="text/css" href="lightbox_stylesheet.css">'; .

Ответ №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);
}
  

Спасибо за информацию, ребята.. Я предпочитаю метод thirtydot моему: D..