2012-01-12 51 views
0

我有一個使用jQuery UI主題的網頁。在這個頁面中,有一個iFrame持有另一個HTML文檔,它也使用了jQuery UI主題。現在,我已經做出了自己的主題選擇,並且我想知道讓它在iFrame中影響頁面的最簡單方法。例如,當用戶選擇一個新的主題,我簡單的做這樣的事情:如何動態更改其他頁面的iFrame中的HTML頁面的樣式表?

<link id="uiTheme" rel="stylesheet" type="text/css" href="ui/smoothness.css" /> 
$("#uiTheme").attr("href", "ui/" + newTheme + ".css"); 

哪裏newTheme是字符串字面不同他們(通過選擇框都做了,我知道這一切的作品和這樣的)。現在,我怎樣才能改變框架內使用的表格以匹配主頁面?我想我的問題是我如何使用jQuery選擇器來獲取id爲innerTheme的鏈接,將它的href屬性更改爲相同的樣式表?此外,我甚至需要擔心這個問題,還是外部頁面的ui主題會自動下降到框架中,而框架的頁面本身不會鏈接到樣式表?

如果我的問題有點混亂,我很抱歉。如果需要,我可以嘗試清除任何事情。

+2

他們都在同一個域名? – Treffynnon 2012-01-12 23:24:52

+0

是的,它們都在同一個域中。 – 2012-01-13 00:48:46

回答

1

您不必獲取對其鏈接元素的引用 - 只需添加自己的鏈接並將其覆蓋即可。

var link = document.createElement('link'); 
link.href = "http://full.domain.com/ui/smoothness.css"; 
link.type = 'text/css'; 
link.rel = 'stylesheet'; 
$('head', frameName)[0].appendChild(link); 

但是,您將無法如果它是從另一個域來修改任何在其他框架。因此,如果它是從同一個域提供的 - 在原始頁面上進行更改可能會更容易。如果它來自另一個網站 - 可悲的是你運氣不好。

+0

最後一行代碼就是我想要的。我不知道選擇器的第二個參數是iframe的「名稱」,而不是它的ID或其他內容。我認爲像'$(「#innerTheme」,「myFrame」)。attr(「href」,「ui /」+ newTheme +「.css」);'其中'