#1 2011.02.06 19:35

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Есть вопрос по iframe

Я вот вызываю таким образом он срабатывает на ссылках и формах.
Вот вопрос как ето все реализовать чтобы не записывало в историю.

Код:

1
this.setAttribute('target','myframe');

Неактивен

#2 2011.02.06 20:17

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

смысл? от чего ты пытаешься защититься?

Неактивен

#3 2011.02.06 20:36

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Ну я использую такой код типа ajax.
Сам аякс чет не могу осилить.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
<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 2011.02.07 01:00

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Ладно вощем.
Там я так подумал пусть пишет в историю у меня тут другая проблема появилась
три моих iframe почемуто дают ошибку.

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<!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

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
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:12)

Неактивен

#5 2011.02.07 09:39

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

чет ты какой-то херней занимаешься)
используй jquery, рабоать с XmlHttpRequest очень просто

Неактивен

#6 2011.02.07 18:31

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

А ты можешь дать пару примеров?
1) Как же в ту самую форму ввода в рулить чтобы и файлы передавала без обновления страницы.
2) И как это все на ссылки ставить?
И еще вопрос можно как нибудь с делать чтобы все ссылки в <div id="123"></div>
Открывал ajax в <div id="321"></div>
Чтобы ссылки были без всяких обработчиков событий onClick и тому подобному.

Отредактировано TLENS (2011.02.08 04:10)

Неактивен

#7 2011.02.08 03:56

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Gemoroy весьма благодарен за совет. Вот это сила.
Тем боле так как я не знаю толком яву это просто находка.
Огромное спасибо. http://85.17.73.230/img/pasiba.gif
Уже начитался всякой литературы аж загорелся. http://85.17.73.230/img/or.gif

Отредактировано TLENS (2011.02.08 04:09)

Неактивен

#8 2011.02.08 05:21

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Вот и решился вопрос

Код:

1
2
3
4
5
$('a#123').click(function(event){
event.preventDefault();
linkLocation = this.href;
$("#321").load(linkLocation);
});

Чет натяпал.
Сейчас буду с постом ковырятся

Отредактировано TLENS (2011.02.08 05:31)

Неактивен

#9 2011.02.08 06:37

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Gemoroy пожалуйста помоги с формой я тут растерялся немного.
Надо пост форму $("form#content") отправить кликом по сабмиту на test.php и ответ вставить сюда же в $("#content")
Выручай плис

Отредактировано TLENS (2011.02.08 06:37)

Неактивен

#10 2011.02.08 12:28

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

Можно собирать элементы формы вручную, а можно воспользоваться плагином, который сам это сделает, что удобнее, конечно.
Потребуется нам сама библиотека jQuery и плагин jqery.form
Оф страничка плагина form тут: http://jquery.malsup.com/form/, правда он как-то не особо последнее время развивается и у него есть проблемы с поддержкой оперы. Надеюсь, с выходом jQuery 1.5 его допилят...
Исправленный и сжатый вариант можно взять, например, тут: http://topby.by/js/jquery.form.js

Далее, вешаем обработчик на страницу:

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
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. Пример:

Код:

1
2
3
<?php
$response = array('error' => false'message' => 'Запрос успешно выполнен');
echo json_encode($response);

вот и все... вместо JSON можно использовать XML, HTML может еще что-то, о чем я забыл, но настоятельно рекомендую пользоваться именно JSON.

Неактивен

#11 2011.02.08 14:33

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Спасибо

Неактивен

#12 2011.02.08 20:35

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Слушай я чет ничего не пойму мне json не нужен почему оно не работает?

Код:

1
2
3
4
5
6
var options = {
dataType: "html",
beforeSubmit: function () {},
success: function (msg) {$("#content-center").append(msg);},
type: "post"
};

Отредактировано TLENS (2011.02.08 20:36)

Неактивен

#13 2011.02.08 20:46

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

1) выпрямляй код, уверен, что там мешанина из sql + php + html, отсюда и "мне json не нужен".
2) весь код давай.
3) в твоем коде beforeSubmit можно опустить, а success вообще-то должна принимать 2 параметра. 2 отвечает за статус самого XmlHttpRequest запроса, и по хорошему его тоже нужно отслеживать.

Неактивен

#14 2011.02.08 20:50

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Этот код работает но надо чтобы без json

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<!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:57)

Неактивен

#15 2011.02.08 21:01

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

выпрямляй код, уверен, что там мешанина из sql + php + html

Я ещё к движку не подключал его, покаместь тестирую

Неактивен

#16 2011.02.08 21:12

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

сравни.
и никогда не пиши js код вперемешку с html. выноси его в отдельные файлы.
Добавлено спустя    44 секунды:
TLENS, почитай про jQuery прежде чем использовать.


Вложения

Неактивен

#17 2011.02.08 21:14

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Да понятно я просто тестирую а так у меня оно в папке с темой

Неактивен

#18 2011.02.08 22:35

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Слушай ну правда зачем  json.
Он и теги возвращает экранирование.
я вот не пойму как без json.

Код:

1
2
3
4
5
6
7
var options = {
dataType: "html",
success: function (response, statusText) {
$("#test").append(response);
},
type: "post"
};

Тоже не кактит

Неактивен

#19 2011.02.08 22:47

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

.text заменил на .html но все равно.
Зачем json?

Неактивен

#20 2011.02.08 22:56

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

за тем, то ты работаешь с ДАННЫМИ, а отображение пускай делает шаблон.

Неактивен

#21 2011.02.08 23:33

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Да нет все таки если бы я еще толком знал javascript.
Это вообще возможно а то я ищу а такого и нельзя делать?
Добавлено спустя   6 минут  21 секунду:
Не ну это не реально надо будет переделывать полностю все.
Добавлено спустя   8 минут  2 секунды:
Надо чтобы просто вставляло страницу в страницу.
Дай пример пожалуйста.

Отредактировано TLENS (2011.02.08 23:40)

Неактивен

#22 2011.02.09 00:41

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Уже начал свою функцию писать аж тут заглянул на документацию удивительно что раньше не додумался оно ведь все так просто

Код:

1
2
3
4
5
$(document).ready(function(){
$('form').ajaxForm(function(data){
$('#content').html(data);
});
});

Но все таки пригодится и json им ввод хорошо проверять.

Отредактировано TLENS (2011.02.09 00:43)

Неактивен

#23 2011.02.09 03:31

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Слушай геморой я тут столкнулся с проблемой.
Почему не вызывается jqyery в полученом коде через ajax.
Точнее вызываются но при повторном вводе функции.
файл test1.php

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!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

Код:

1
2
3
4
<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:36)

Неактивен

#24 2011.02.09 08:54

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

return false;
почитай хотя бы основы JavaScript. Очень грязный код. Впрочем как и <?=$_POST['test']?>

Неактивен

#25 2011.02.09 17:39

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Сейчас качаю Денис Хомич - Видеокурс JavaScript. Больше, чем просто сайт.
По отзывам вроде хороший урок.
Но это на долго с платника качается 1.5гб.
Еще 8 часов осталось и уже час качаю.

Неактивен

#26 2011.02.09 18:23

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Геморрой ну ничего не пойму уже и вставил в функцию return false;

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<!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:30)

Неактивен

#27 2011.02.09 20:02

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

ты же заменяешь форму сам. я вообще не понимаю что за кашу ты пишешь? стандартная процедура - оправил данные на сервер, получил JSON (XML), вставил данные в HTML.

Неактивен

#28 2011.02.09 20:35

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Ну вот смотри я хочу сделать 3 блока.
В каждый из них подгружаю разные страницы с папки pages.
И чтобы в каждой под груженой страничке можно было работать Java Скриптами
Ну например frame там можно ходить по ссылкам куда хочь.
Но только чтобы при вызове в фреймовом окне можно было управлять другими окнами.

Неактивен

#29 2011.02.09 23:19

Gemorroj
Administrator
Откуда: Белоруссия
Зарегистрирован: 2007.11.03
Сообщений: 6538
Карма: 108
Профиль Веб-сайт

Re: Есть вопрос по iframe

не пиши никогда "Java Скриптами" - это не грамотно. пиши JS или JavaScript.
если тебе нужна какая-то особая форма смотри в сторону ExtJS (Sencha) или аналогов. Фреймы - это плохо в любом случае.

Неактивен

#30 2011.02.11 03:31

TLENS
Moderator
Откуда: Украина
Зарегистрирован: 2009.04.05
Сообщений: 2402
Карма: 14
Профиль

Re: Есть вопрос по iframe

Да никакой особой не надо было просто ты прав был что мне надо было хотя бы основы посмотреть.
Проблема у меня была такова что когда я подгружал код в страницу, то он уже не был обработан jquery. Так как при загрузке думпа того кода еще не было.
Мда пока раздуплил те объекты да ито толком еще не раздуплил.
Сижу сейчас морали слушаю от Хомича
У меня идея появилась

Код:

1
2
3
4
5
6
7
8
9
10
$(document).ready(function(){
function myform(){
$('form').ajaxForm(function(data){
$('#content-center').html(data);
myform();
});
}
myform();
});

Такой вариант работает как надо.

Отредактировано TLENS (2011.02.11 03:40)

Неактивен

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.025 s