#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/e9q2u2. @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..