Един въпрос за iframe и рнр

muio

Registered
Възможно ли е да използвам
<iframe src="qqqq.html" frameborder="no"></iframe>

Обаче нямам страницата qqqq.html имам променлива която съдържа нейния код
как да накарам браузара да визуализира кода като фрейм без да го записвам като файл.
Трябва ми защото този фрейм има собствени стилове и искам да го визуализирам в съществуваща страница.
Възможно ли е това че аз не се сещам как да стане ?!?
 
Можеш да го направиш с javascript.
HTML:
<html>
	<head>
		<title></title>
	</head>

	<body>
		<iframe id="frameID"></iframe>
		<script type="text/javascript">
			(function () {
				var
				    fr = document.getElementById('frameID'),
				    w  = fr.contentWindow.window;

				fr.onload	= function () {
			        w.document.body.innerHTML = '..........';
			    };

				fr.setAttribute( 'src', 'about:blank' );
			}());
		</script>
	</body>
</html>

Другия вариант е да ползваш mod_rewrite или направо php файл, за да можеш да ползваш един и същ външен файл, към който да сочи фрейма, но със съдържание каквото му подадеш. Всъщност препоръчвам ти този вариант.
 
нещо не успях да го подкарам тоя скрипт

значи тук w.document.body.innerHTML = '..........';
на мястото на точките поставям променливата

става така w.document.body.innerHTML = '#%preview%#';
променливата съдържа html и css код а е такава защото това е темплейт който се парсва.

<iframe id="frameID"></iframe> задавам номер на frameID примерно 19

и на мястото на fr = document.getElementById('frameID') слагам същия номер така fr = document.getElementById('19')


само тук не схванах какво трябва да се сложи fr.setAttribute( 'src', 'about:blank' );

като отворя страницата и е генериран празен фрейм кода от променливата #%preview%# го няма иначе нормално тази променлива се показва само че е в таблица и не се изобразяват правилно стиловете .

Къде не съм разбрал ?!? :D

Всъщтност целия код на променливата е въведен във w.document.body.innerHTML = '#%preview%#';
виждам го като отворя сорс кода на страницата но нищо не изобразява само празен фрейм
 
няма ли кой да даде една идея как да накарам браузара да визуализира код от променлива като ифрейм целия нет прерових :cry:
 
Явно ползваш някаква темплейт система?

Тук:[js]fr.setAttribute( 'src', 'about:blank' );[/js]не трябва да променяш нищо.

Това е грешно:[js]fr = document.getElementById('19')[/js]id не може да е цифра - трябва да започва с буква от латинската азбука. Това е id-то на фрейма.

Ако погледнеш сорс кода или някоя javascript конзола най-вероятно ще разбереш, че скриптът се чупи, защото не ескейпваш кода, който инклудваш.

Това:[js]bla.innerHTML = "line
new line";[/js]е грешка, защото Javascript автоматично добавя ; в края на реда и прекъсва стринга. За да е коректно трябва да направиш нещо такова:[js]bla.innerHTML = "line\
new line";[/js]така новия ред (\n) се ескейпва. Също така трябва да ескейпнеш и кавичките. Надявам се си се сетил за това.

Иначе ти казах в поста горе, че това е по-лошия вариант. Не съм сигурен защо ти го дадох него първи. Просто ползвай един php файл, който да генерира съдържанието си. Много по-лесно е и много по-трудно е да сгрешиш.
 
Код:
<iframe src="index.php?promenliva=iframe"></iframe>

HTML:
<div style="overflow:auto; width: 200px; height:200px;"><?php echo $text_ot_promenliva;?></div>
 

Back
Горе