2013-06-12 4 views
2

У меня есть iframe на одной странице, и я загружаю html (хранящийся в mysql) в iframe. Я хотел бы применить отдельную таблицу стилей к iframe.JQuery - применить таблицу стилей к iframe (тот же домен)

Вот что я делал до сих пор:

<?php 
    $storedhtml = '<strong>Testing</strong><br><br>lots more html text......'; 
?> 

<iframe id="lovely_pages" src="about:blank" style="width:99%;height:700px;" frameBorder="0"></iframe> 

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 

    $('#lovely_pages').contents().find('html').html('<?php echo $storedhtml; ?>'); 

}); 
</script> 

Вот таблица стилей, я хочу обратиться к iframe:

<link href="/styles/iframe_only.css" rel="stylesheet" type="text/css">

Я попытался поместить таблицу стилей в html() с переменной $storedhtml, но это ничего не изменило. Может ли кто-нибудь увидеть, что я делаю неправильно?

+0

не выглядит как у вас есть голова, тело, или что-нибудь еще в вашем плавающем фрейме, так как вы просто вставить простую строку в documentElement, переписывая все остальное. Браузер, вероятно, попытается исправить это, но стили должны быть в голове, поэтому вам нужно либо вставить правильный HTML-код, либо получить доступ к элементу головы, созданного браузером, чтобы исправить свои глупые ошибки. – adeneo

+0

Я просто играл с этим, так как я заметил, что внутри 'iframe' было немного, кроме простой строки. – coffeemonitor

ответ

2

Следующая модификация ниже закрепил результат:

<?php 
    $storedhtml = '<strong>Testing</strong><br><br>lots more html text......'; 
?> 

<iframe id="lovely_pages" src="about:blank" style="width:99%;height:700px;" frameBorder="0"></iframe> 

<script language="javascript" type="text/javascript"> 
$(document).ready(function(){ 

    $('#lovely_pages').contents().find('head').html('<link href="/styles/iframe_only.css" rel="stylesheet" type="text/css">'); 
    $('#lovely_pages').contents().find('body').html('<?php echo $storedhtml; ?>'); 

}); 
</script> 
Смежные вопросы