[英]adding css file with jquery
我正在創建一個彈出窗口,我想向該彈出窗口添加一個 css 文件。 下面是彈出窗口的代碼。 我有一個創建彈出窗口的 JavaScript。
<a href="popupwindowcontent.xhtml" title="Print" class="popupwindow">Print1</a>
現在我想向這個彈出窗口添加一個 css 文件。 我試過類似的東西
$('.popupwindow').append('<link rel="stylesheet" href="css/style2.css" type="text/css" />');
$('head').append('<link rel="stylesheet" href="css/style2.css" type="text/css" />');
但它不起作用。
$('head').append('<link rel="stylesheet" href="style2.css" type="text/css" />');
這應該有效。
這就是我使用 jQuery ajax 添加 css 的方式。 希望它可以幫助某人..
$.ajax({
url:"site/test/style.css",
success:function(data){
$("<style></style>").appendTo("head").html(data);
}
})
var css_link = $("<link>", {
rel: "stylesheet",
type: "text/css",
href: "yourcustomaddress/bundles/andreistatistics/css/like.css"
});
css_link.appendTo('head');
只是我的幾美分……有時最好確保沒有任何重復……所以我們在 utils 庫中有下一個函數:
jQuery.loadCSS = function(url) {
if (!$('link[href="' + url + '"]').length)
$('head').append('<link rel="stylesheet" type="text/css" href="' + url + '">');
}
如何使用:
$.loadCSS('css/style2.css');
試着反過來做。
$('<link rel="stylesheet" href="css/style2.css" type="text/css" />').appendTo('head');
您的問題是您的選擇器用於錨元素<a>
。 您將<a>
標記視為代表頁面,但事實並非如此。
只要需要 css 的頁面正在執行此選擇器, $('head')
就會起作用。
為什么不簡單地將 css 文件添加到相關頁面。 從另一個頁面動態嘗試此操作的任何特殊原因? 我什至不熟悉將 css 注入到這樣的遠程頁面的方法......似乎這將是一個主要的安全漏洞。
補充你的推理:
然后你應該簡單地向頁面傳遞一個參數,使用javascript讀取它,然后根據參數做任何需要的事情。
我不認為你可以附加到你正在實例化的窗口中......我知道如果 url 位於不同的域(XSS 和所有爵士樂)上,你不能這樣做,但是你可以從那個窗口說話並訪問父窗口的元素,假設它們在同一個域中。 最好的辦法是在您正在加載的頁面上附加樣式表,如果該頁面不在同一個域中(例如嘗試重新設計其他人的頁面),您將無法這樣做。
您是否嘗試過簡單地使用 media 屬性作為您的 css 參考?
<link rel="stylesheet" href="css/style2.css" media="print" type="text/css" />
或者,如果您不希望打印版本使用該樣式,則將其設置為 screen:
<link rel="stylesheet" href="css/style2.css" media="screen" type="text/css" />
這樣您就不需要動態添加它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.