Вы не зашли.
Главная » HTML/xHTML/WML » Есть вопрос по iframe
#1. TLENS Off (14)
Moderator
2011.02.06 19:07
Я вот вызываю таким образом он срабатывает на ссылках и формах.
Вот вопрос как ето все реализовать чтобы не записывало в историю.

Код:
this.setAttribute('target','myframe');
#2. Gemorroj Off (107)
Administrator
2011.02.06 20:08
смысл? от чего ты пытаешься защититься?
#3. TLENS Off (14)
Moderator
2011.02.06 20:08
Ну я использую такой код типа ajax.
Сам аякс чет не могу осилить.
Код:
<a href="file.php?page=1" onClick="this.setAttribute('target','myframe');">Go</a>
 
<form method="post" action="file.php?" onSubmit="this.setAttribute('target','myframe');">
<input type="text" name="page" />
<input type="submit" value="go" />
</form>
 
 
<iframe onLoad="window.document.getElementById('content').innerHTML=myframe.document.body.innerHTML;" frameborder='0' width='0' height='0' name="myframe" id="myframe">
</iframe>
<br />
<test id="content"></test>
Но при каждом получении кода работает команда назад.
Надо чтобы при некоторых вызовах запретить перемещение назат
Добавлено спустя   3 минуты  13 секунд:
этот пример ты по идее мне давал.
Вот его и решил юзать
#4. TLENS Off (14)
Moderator
2011.02.07 01:01
Ладно вощем.
Там я так подумал пусть пишет в историю у меня тут другая проблема появилась
три моих iframe почемуто дают ошибку.
Код:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
 
<head>
 
<title>Goo</title>
 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="/themes/green/js.js"></script>
<link rel="stylesheet" href="/themes/green/style.css" type="text/css" />
</head><body align="center" onLoad="start();">
<iframe onLoad="window.document.getElementById('frame-content-left').innerHTML=myframel.document.body.innerHTML;" frameborder="0" width="0" height="0" name="myframel" id="myframel"></iframe>
<iframe onLoad="window.document.getElementById('frame-content-center').innerHTML=myframec.document.body.innerHTML;" frameborder="0" width="0" height="0" name="myframec" id="myframec"></iframe>
<iframe onLoad="window.document.getElementById('frame-content-right').innerHTML=myframer.document.body.innerHTML;" frameborder="0" width="0" height="0" name="myframer" id="myframer"></iframe>
 
 
 
 
<div id="header-2"><div id="header-1"><div id="header-3"></div></div></div>
<div id="content"><div id="content-right">
<div align="left" id="header"><div id="header-right">&nbsp;<img src="/themes/logo.gif" alt="logo" /></div></div>
<div id="header-5"><div id="header-4"><div id="header-6"></div></div></div>
 
<table><tr height="10">
<td width="240" align="right" id="frame-content-left"></td>
 
<td width="720" align="center" id="frame-content-center"></td>
 
<td width="240" align="left" id="frame-content-right"></td>
 
</tr></table>
 
 
<br />
</div></div>
 
 
 
<div id="footer-2"><div id="footer-1"><div id="footer-3"></div></div></div>
 
<div id="footer" align="center"><div id="footer-right"></div></div>
 
<div id="footer-5"><div id="footer-4"><div id="footer-6"></div></div></div>
 
 
 
 
 
</body>
 
</html>
script
Код:
function start()
{
myframel("/pages/main.php");
myframec("/pages/reg.php");
myframer("/pages/reviews.php");
}
function myframel(url)
{
var myframel=document.getElementById("myframel");
myframel.setAttribute("src",url);
 
}
 
function myframec(url)
{
var myframec=document.getElementById("myframec");
myframec.setAttribute("src",url);
 
}
function myframer(url)
{
var myframer=document.getElementById("myframer");
myframer.setAttribute("src",url);
 
}
Добавлено спустя   2 минуты  31 секунду:
Uncaught TypeError: Cannot set property 'innerHTML' of null
(anonymous function)http://topgen.pp.ua/:15
onload
это хром показывает при просмотре кода элементов
хотя все страници загружаются
Добавлено спустя   8 минут  35 секунд:
Блин чет вообще потестил оно на ie mozile не фурычит
ладно пойду спать хочу. Буду разбираться
Отредактировано TLENS (2011.02.07 01:01)
#5. Gemorroj Off (107)
Administrator
2011.02.07 09:09
чет ты какой-то херней занимаешься)
используй jquery, рабоать с XmlHttpRequest очень просто
#6. TLENS Off (14)
Moderator
2011.02.07 18:06
А ты можешь дать пару примеров?
1) Как же в ту самую форму ввода в рулить чтобы и файлы передавала без обновления страницы.
2) И как это все на ссылки ставить?
И еще вопрос можно как нибудь с делать чтобы все ссылки в <div id="123"></div>
Открывал ajax в <div id="321"></div>
Чтобы ссылки были без всяких обработчиков событий onClick и тому подобному.
Отредактировано TLENS (2011.02.08 04:04)
#7. TLENS Off (14)
Moderator
2011.02.08 03:03
Gemoroy весьма благодарен за совет. Вот это сила.
Тем боле так как я не знаю толком яву это просто находка.
Огромное спасибо. http://85.17.73.230/img/pasiba.gif
Уже начитался всякой литературы аж загорелся. http://85.17.73.230/img/or.gif
Отредактировано TLENS (2011.02.08 04:04)
#8. TLENS Off (14)
Moderator
2011.02.08 05:05
Вот и решился вопрос
Код:
$('a#123').click(function(event){
event.preventDefault();
linkLocation = this.href;
$("#321").load(linkLocation);
});
Чет натяпал.
Сейчас буду с постом ковырятся
Отредактировано TLENS (2011.02.08 05:05)
#9. TLENS Off (14)
Moderator
2011.02.08 06:06
Gemoroy пожалуйста помоги с формой я тут растерялся немного.
Надо пост форму $("form#content") отправить кликом по сабмиту на test.php и ответ вставить сюда же в $("#content")
Выручай плис
Отредактировано TLENS (2011.02.08 06:06)
#10. Gemorroj Off (107)
Administrator
2011.02.08 12:12
Можно собирать элементы формы вручную, а можно воспользоваться плагином, который сам это сделает, что удобнее, конечно.
Потребуется нам сама библиотека jQuery и плагин jqery.form
Оф страничка плагина form тут: http://jquery.malsup.com/form/, правда он как-то не особо последнее время развивается и у него есть проблемы с поддержкой оперы. Надеюсь, с выходом jQuery 1.5 его допилят...
Исправленный и сжатый вариант можно взять, например, тут: http://topby.by/js/jquery.form.js

Далее, вешаем обработчик на страницу:
Код:
var options = {
dataType: "json",
beforeSubmit: function () {
// тут можно написать код, который будет выполняться до ответа сервера. как правило, нужно показать крутящуюся картинку
},
success: function (response, statusText) {
// если делали крутящуюся картинку, то тут ее убираем
 
if (response.error === true) {
// сообщаем об ошибке
alert(response.message);
} else {
// все ок
alert(response.message);
}
},
type: "post"
};
 
$(document).ready(function () {
$("#formAJAXSubmit").submit(function (e) {
e.preventDefault();
$(this).ajaxSubmit(options);
return false;
});
});
Переменная options - это настройки для плагина jquery.form. Надеюсь, из комментариев будет понятно что к чему.
$("#formAJAXSubmit") - это id формы. Т.е. <form id="formAJAXSubmit"...> Само собой, id может быть и другим, и вообще форму можно находить по любым другим доступным атрибутам.
На сервере собираем ответ в виде обычного массива, и пакуем в JSON. Пример:
Код:
span style="color: #0000BB"><?php$response = array('error' => false, 'message' => 'Запрос успешно выполнен');echo json_encode($response);
вот и все... вместо JSON можно использовать XML, HTML может еще что-то, о чем я забыл, но настоятельно рекомендую пользоваться именно JSON.
#11. TLENS Off (14)
Moderator
2011.02.08 14:02
Спасибо
#12. TLENS Off (14)
Moderator
2011.02.08 20:08
Слушай я чет ничего не пойму мне json не нужен почему оно не работает?

Код:
var options = {
dataType: "html",
beforeSubmit: function () {},
success: function (msg) {$("#content-center").append(msg);},
type: "post"
};
Отредактировано TLENS (2011.02.08 20:08)
#13. Gemorroj Off (107)
Administrator
2011.02.08 20:08
1) выпрямляй код, уверен, что там мешанина из sql + php + html, отсюда и "мне json не нужен".
2) весь код давай.
3) в твоем коде beforeSubmit можно опустить, а success вообще-то должна принимать 2 параметра. 2 отвечает за статус самого XmlHttpRequest запроса, и по хорошему его тоже нужно отслеживать.
#14. TLENS Off (14)
Moderator
2011.02.08 20:08
Этот код работает но надо чтобы без json
Код:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script src="form.js"></script>
</head>
<body>
<script>
 
 
var options = {
dataType: "json",
success: function (response, statusText) {
$("p").append(response.message);
},
type: "post"
};
 
 
 
 
$(document).ready(function () {
$("form").submit(function (e) {
e.preventDefault();
$(this).ajaxSubmit(options);
return false;
});
});
</script>
<form method="post" action="file.php">
<input type="submit" name="1" value="1" />
</form>
<p></p>
 
</body>
</html>
Добавлено спустя   3 минуты  3 секунды:
У меня просто wap i web версия.
И если вап тема то я туда добавляю тему.
А если web html просто планирую разные темы и flash хочу
Вощем я подумал надо без jsona
Добавлено спустя   5 минут  39 секунд:
Еще вопрос чем заменить append чтобы рядом не добавляло.
Пробувал("p").innerHTML = (response.message);
чет не работает.
Отредактировано TLENS (2011.02.08 20:08)
#15. TLENS Off (14)
Moderator
2011.02.08 21:09
выпрямляй код, уверен, что там мешанина из sql + php + html
Я ещё к движку не подключал его, покаместь тестирую
#16. Gemorroj Off (107)
Administrator
2011.02.08 21:09
сравни.
и никогда не пиши js код вперемешку с html. выноси его в отдельные файлы.
Добавлено спустя    44 секунды:
TLENS, почитай про jQuery прежде чем использовать.
Вложения
test.zip 5kb [загрузок: 537]
#17. TLENS Off (14)
Moderator
2011.02.08 21:09
Да понятно я просто тестирую а так у меня оно в папке с темой
#18. TLENS Off (14)
Moderator
2011.02.08 22:10
Слушай ну правда зачем  json.
Он и теги возвращает экранирование.
я вот не пойму как без json.
Код:
var options = {
dataType: "html",
success: function (response, statusText) {
$("#test").append(response);
},
type: "post"
};
Тоже не кактит
#19. TLENS Off (14)
Moderator
2011.02.08 22:10
.text заменил на .html но все равно.
Зачем json?
#20. Gemorroj Off (107)
Administrator
2011.02.08 22:10
за тем, то ты работаешь с ДАННЫМИ, а отображение пускай делает шаблон.
#21. TLENS Off (14)
Moderator
2011.02.08 23:11
Да нет все таки если бы я еще толком знал javascript.
Это вообще возможно а то я ищу а такого и нельзя делать?
Добавлено спустя   6 минут  21 секунду:
Не ну это не реально надо будет переделывать полностю все.
Добавлено спустя   8 минут  2 секунды:
Надо чтобы просто вставляло страницу в страницу.
Дай пример пожалуйста.
Отредактировано TLENS (2011.02.08 23:11)
#22. TLENS Off (14)
Moderator
2011.02.09 00:12
Уже начал свою функцию писать аж тут заглянул на документацию удивительно что раньше не додумался оно ведь все так просто
Код:
$(document).ready(function(){
$('form').ajaxForm(function(data){
$('#content').html(data);
});
});
Но все таки пригодится и json им ввод хорошо проверять.
Отредактировано TLENS (2011.02.09 00:12)
#23. TLENS Off (14)
Moderator
2011.02.09 03:03
Слушай геморой я тут столкнулся с проблемой.
Почему не вызывается jqyery в полученом коде через ajax.
Точнее вызываются но при повторном вводе функции.
файл test1.php
Код:
<!DOCTYPE html>
<html>
<head>
<script src="jquery.js"></script>
<script src="form.js"></script>
</head>
<body>
<script>
 
$(document).ready(function(){
$('form').ajaxForm(function(data){
$('#form').html(data);
});
});
</script>
 
<div id="form">
 
<form method="post" action="test2.php">
<input name="test" />
<input type="submit" name="post" value="go" />
</form>
 
</div>
 
 
</body>
</html>
файл test2.php
Код:
<form method="post" action="test2.php">
<input name="test" value="Введено <?=$_POST['test']?>" />
<input type="submit" value="Ввести еще раз?" />
</form>
При нажатии на кнопку go в test1.php срабатывает ajax и меняет форму на ту что в test2.php
Но при новом нажатии на кнопку Ввести еще раз? перебрасует на test2.php

Что за глюк где я уже напортачил?
Помоги плис исправить чтобы при нажатии на Ввести еще раз? срабатывал поновой ajax и обновлял html.
Отредактировано TLENS (2011.02.09 03:03)
#24. Gemorroj Off (107)
Administrator
2011.02.09 08:08
return false;
почитай хотя бы основы JavaScript. Очень грязный код. Впрочем как и <?=$_POST['test']?>
#25. TLENS Off (14)
Moderator
2011.02.09 17:05
Сейчас качаю Денис Хомич - Видеокурс JavaScript. Больше, чем просто сайт.
По отзывам вроде хороший урок.
Но это на долго с платника качается 1.5гб.
Еще 8 часов осталось и уже час качаю.
#26. TLENS Off (14)
Moderator
2011.02.09 18:06
Геморрой ну ничего не пойму уже и вставил в функцию return false;
Код:
<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-1.5.js"></script>
<script src="form.js"></script>
<script>
var form = '<form method="post" action="file.php?get=1"><input name="test" /> <input type="submit" name="post" value="go" /></form>';
$(document).ready(function(){
$("form").submit(function (e)
{
e.preventDefault();
$('#form').html(form);
return false;
});
});
</script>
</head>
<body>
<div id="form">
<form method="post" action="file.php?get=1">
<input name="test" />
<input type="submit" name="post" value="go" />
</form>
</div>
</body>
</html>
Меняю добавляю onSubmit="return false;" в переменную form <form onSubmit="return false;"...
Не хочет вызывать $("form").submit
В чем дело, почему форма при втором клике отправляет на экшен, возможно зделать чтобы jquery находил тег в по вставленном тексте?
Отредактировано TLENS (2011.02.09 18:06)
#27. Gemorroj Off (107)
Administrator
2011.02.09 20:08
ты же заменяешь форму сам. я вообще не понимаю что за кашу ты пишешь? стандартная процедура - оправил данные на сервер, получил JSON (XML), вставил данные в HTML.
#28. TLENS Off (14)
Moderator
2011.02.09 20:08
Ну вот смотри я хочу сделать 3 блока.
В каждый из них подгружаю разные страницы с папки pages.
И чтобы в каждой под груженой страничке можно было работать Java Скриптами
Ну например frame там можно ходить по ссылкам куда хочь.
Но только чтобы при вызове в фреймовом окне можно было управлять другими окнами.
#29. Gemorroj Off (107)
Administrator
2011.02.09 23:11
не пиши никогда "Java Скриптами" - это не грамотно. пиши JS или JavaScript.
если тебе нужна какая-то особая форма смотри в сторону ExtJS (Sencha) или аналогов. Фреймы - это плохо в любом случае.
#30. TLENS Off (14)
Moderator
2011.02.11 03:03
Да никакой особой не надо было просто ты прав был что мне надо было хотя бы основы посмотреть.
Проблема у меня была такова что когда я подгружал код в страницу, то он уже не был обработан jquery. Так как при загрузке думпа того кода еще не было.
Мда пока раздуплил те объекты да ито толком еще не раздуплил.
Сижу сейчас морали слушаю от Хомича
У меня идея появилась
Код:
$(document).ready(function(){
function myform(){
$('form').ajaxForm(function(data){
$('#content-center').html(data);
myform();
});
}
myform();
});
Такой вариант работает как надо.
Отредактировано TLENS (2011.02.11 03:03)
Страниц: 1 2 3 Все
Главная
WEB
PunBB Mod v0.6.2
0.022 s