Привет всем!
Мне нужно по Response.Write передавать клиенту данные в виде xml или в виде простого текста, данные сабмитятся на скрытый инлайн фрейм — как я узнаю что пришли данные??? событие onload у iframe почемуто отсутсвует. Пользую ASP и VBScript
Здравствуйте, MentalSky, Вы писали:
MS>Привет всем! MS>Мне нужно по Response.Write передавать клиенту данные в виде xml или в виде простого текста, данные сабмитятся на скрытый инлайн фрейм — как я узнаю что пришли данные??? событие onload у iframe почемуто отсутсвует. Пользую ASP и VBScript
Здравствуйте, TSS, Вы писали:
TSS>См. документацию на onreadystatechange() event.
Уже проверил — не срабатывает этот евент. Ничего не понимаю...
Вот еще что смущает... на сервер я делаю Response.Write("blahblah")
На форме после сабмита я это слово наблюдаю во фрейме, смотрю что есть в my_frame.innerHTML, innerTEXT — а там ничего...
Дело в том что я пишу рабочее место оператора — если делать все "как надо" — то в ответ на каждое нажатие кнопок на форме придется перегружать форму — а это увеличенный траффик, а за него меня убьют Вот и птыабсь пользовать DHTML совместно с ASP
Здравствуйте, MentalSky, Вы писали:
TSS>>См. документацию на onreadystatechange() event.
MS>Уже проверил — не срабатывает этот евент. Ничего не понимаю... MS>Вот еще что смущает... на сервер я делаю Response.Write("blahblah")
MS>На форме после сабмита я это слово наблюдаю во фрейме, смотрю что есть в my_frame.innerHTML, innerTEXT — а там ничего...
Если во фрейм через Response.Write() пишется примерно следующее: "<xml>some text</xml>", то innerHTML действительно даст этот текст. Если же запросить innerText, не возвратится ничего, что вполне естественно, т.к. сам по себе фрейм текста не имеет -- он имеет теги XML/HTML.
MS>Дело в том что я пишу рабочее место оператора — если делать все "как надо" — то в ответ на каждое нажатие кнопок на форме придется перегружать форму — а это увеличенный траффик, а за него меня убьют Вот и птыабсь пользовать DHTML совместно с ASP
Могу посоветовать следующее. Во фрейм пишешь:
<html><head></head><body>
<xml id="dataSource">
<!-- some data here -->
</xml>
<script language="JScript">
var o = document.all["dataSource"];
window.parent.document.all["someContent"].innerText = o.XMLDocument.xml;
</script>
</body></html>
Если я ничего не наврал в "window.parent.document...", то должно сработать.
Да, в главной странице (на которой лежит скрытый iframe), сделай какой-нить элемент (например <DIV>) с ID="someConent".
По такому принципу в свое время было сделано дерево топиков на MSDN-е.
Здравствуйте, TSS, Вы писали:
TSS>Если во фрейм через Response.Write() пишется примерно следующее: "<xml>some text</xml>", то innerHTML действительно даст этот текст. Если же запросить innerText, не возвратится ничего, что вполне естественно, т.к. сам по себе фрейм текста не имеет -- он имеет теги XML/HTML.
Сделал Response.Write("<xml>some text</xml>") — в innerHTML ничего, как и во фрейме ничего не видно...
TSS>Могу посоветовать следующее. Во фрейм пишешь: TSS>
TSS><html><head></head><body>
TSS><xml id="dataSource">
TSS> <!-- some data here -->
TSS></xml>
TSS><script language="JScript">
TSS> var o = document.all["dataSource"];
TSS> window.parent.document.all["someContent"].innerText = o.XMLDocument.xml;
TSS></script>
TSS></body></html>
TSS>
TSS>Если я ничего не наврал в "window.parent.document...", то должно сработать. TSS>Да, в главной странице (на которой лежит скрытый iframe), сделай какой-нить элемент (например <DIV>) с ID="someConent". TSS>По такому принципу в свое время было сделано дерево топиков на MSDN-е.
Да, это должно работать... да только как увидит админ что такое в минуту раз 20ть по сети бегает ((
Так, с содержимым iframe после сабмита разобрался — получилось через document.body.innerText
Теперь бы евент сделать на получение формы, нет, ну почему в msdn указан евент onload, а в природе его не наблюдается???... ужас как не охота через вызов скрипта из тела полученного документа...
Здравствуйте, MentalSky, Вы писали:
MS>Так, с содержимым iframe после сабмита разобрался — получилось через document.body.innerText MS>Теперь бы евент сделать на получение формы, нет, ну почему в msdn указан евент onload, а в природе его не наблюдается???... ужас как не охота через вызов скрипта из тела полученного документа...
А он вызывается только один раз. При первоначальной загрузке фрейма. Потом -- не вызывается.
Workaround: добавь в конец текста код с вызовом функции обработки onload.
Здравствуйте, TSS, Вы писали:
TSS>Здравствуйте, MentalSky, Вы писали:
MS>>Так, с содержимым iframe после сабмита разобрался — получилось через document.body.innerText MS>>Теперь бы евент сделать на получение формы, нет, ну почему в msdn указан евент onload, а в природе его не наблюдается???... ужас как не охота через вызов скрипта из тела полученного документа...
TSS>А он вызывается только один раз. При первоначальной загрузке фрейма. Потом -- не вызывается. TSS>Workaround: добавь в конец текста код с вызовом функции обработки onload.
Где добавить? если во фрейм я буду возвращать например не полноценную хтмл-страницу, а теги вида <mydata id=mydata value=data>или что то в этом роде???
Здравствуйте, MentalSky, Вы писали:
TSS>>А он вызывается только один раз. При первоначальной загрузке фрейма. Потом -- не вызывается. TSS>>Workaround: добавь в конец текста код с вызовом функции обработки onload.
MS>Где добавить? если во фрейм я буду возвращать например не полноценную хтмл-страницу, а теги вида <mydata id=mydata value=data>или что то в этом роде???
<html><body>
<p>test</p>
<script>
window.parent.processIFrameOnLoad ("loaded html 2");
</script>
</body></html>
Сохрани их и запусти -- может что и прояснится.
test.html и test2.html -- это примеры ответов сервера по Response.Write(). Для простоты для запроса используется <button onclick="" />