2012-02-02 55 views
0

我有这个代码添加样式表到fancybox iframe的页面。我可以对父页面执行相同的操作吗?Fancybox添加样式表到父页

我都试过,但没有奏效...

window.parent.changeStyles(stylesheet);

功能changeStyles(样式){ $( “”,{ 相对: “样式”, 类型: “文字/ CSS”, HREF:风格 })appendTo( “头”); };

  $('.change-styles').on('click',function(){        
       var stylesheet = $(this).attr('href'); 
       changeStyles(stylesheet); 


       return false 
      }); 

回答

1

首先,定义一个父文件:

<html> 
<head></head> 
<body> 
    <iframe src="iframe.html"></iframe> 
</body> 
</html> 

然后在iframe文件iframe.html

<html> 
<head> 

<script> 

function addCSSToParent(url) { 
    var link = document.createElement('link'); 
    link.rel = 'stylesheet'; 
    link.href = url; 
    link.type = 'text/css'; 
    window.parent.document.getElementsByTagName('head')[0].appendChild(link); 
} 

// Add some CSS 
addCSSToParent('some.css'); 

</script> 
</head> 

<body>This is the iframe.</body> 
</html> 

addCSSToParent()将增加一个新的DOM元素为其父用头给定的URL。请确保在服务器环境中运行此操作,因为访问父项已工作但在Chrome中出现了一些安全错误。

+0

虽然这是我所需要的,但它并不针对父页面。谢谢 – Crashdesk 2012-02-02 15:58:32

+0

您的意思是JS在iframe中运行,并且您希望它将CSS添加到父项? – 2012-02-02 16:02:50

+0

对不起。是。没有解释得太好 – Crashdesk 2012-02-02 16:05:54