Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Интересная задачка - динамическая вставка данных на странице =)
 
 автор: retsoul   (07.12.2007 в 11:39)   письмо автору
 
 

пишу маленький скрипт и встретил вот такой вопрос:

как добавить скрипт на страницу?

Исходные данные такие:
имеется поле textarea, которая при изменении её содержимого, выводит это содержимое в какой-то блок, например, div

Задача:
как написать в этом поле textarea например такой скрипт:

<script language="javascript">
<!--
function func() {
  alert('O-o-o-o-ps!');
  }
// -->
</script>
<a href="javascript:func()">Link me =)</a>

и чтобы при нажатии на ссылку Link me =)(в результирующем "диве") выскакивало это "алёртовое" окошко c текстом?

с другой стороны, вот такой код работает без проблем:

<a href="javascript:alert('123')">Link me =)</a>


сам скрипт добавления в элемент div выглядит так:

function somefunc() {
var stxt = document.getElementById("stxt").value;
var rtxt = document.getElementById("rtxt");
rtxt.innerHTML = stxt;
}

   
 
 автор: CNT   (07.12.2007 в 11:54)   письмо автору
 
   для: retsoul   (07.12.2007 в 11:39)
 

Во-первых, перед выводом содержимого TEXTAREA необходимо изменить это содержание таким образом, чтобы все 'SCRIPT' превратились в 'SCR' + 'IPT'.

Во-вторых, к "вживляемому" тегу <SCRIPT> необходимо добавлять атрибут DEFER

Это можно реализовать, например, так:
var stxt = document.getElementById ("stxt").value.replace (/\<script/ig, "<script defer").replace (/script/g, "scr' + 'ipt");

   
 
 автор: retsoul   (07.12.2007 в 12:05)   письмо автору
 
   для: CNT   (07.12.2007 в 11:54)
 

было бы очень здоровски, если бы вы ещё пояснили для чего мы это делаем? :)

проверил этот код, модифицировав его тами образом:

function somefunc() {
  var stxt = document.getElementById("stxt").value;
  stxt = stxt.replace(/\<script/ig, "<script defer") .replace (/script/g, "scr' + 'ipt");
  var rtxt = document.getElementById("rtxt");
  rtxt.innerHTML = stxt;
  }

всё правильно отображается в Лисе, но сам код не работает, так как при наведении на ссылку отображается вот такая вот лабуда:
http://localhost/javascr' + 'ipt:func(),
в седьмом ИЕ глючит и ссылку не показывает
в опере 9.5 - таже история, что и с ФаерФоксей


ещё вопрос что мы получаем используя в одной строке 2-а обращения к функции replace()?
заменяем один раз, а потом результат ещё раз изменяем?

   
 
 автор: retsoul   (07.12.2007 в 12:45)   письмо автору
 
   для: retsoul   (07.12.2007 в 12:05)
 

ещё поэксперементировал с кодом:

function somefunc() {
  var stxt = document.getElementById("stxt").value;
  stxt = stxt.replace(/\<script/ig, "<script defer");
  var rtxt = document.getElementById("rtxt");
  rtxt.innerHTML = stxt;
  } 

вот такой вариант в ИЕ 7 работает,
а в FF 3b1 и Opera 9.5 - не работает :(

как его сделать универсальным? :)

   
 
 автор: MIchail1982   (07.12.2007 в 13:26)   письмо автору
 
   для: retsoul   (07.12.2007 в 12:45)
 


if(window.event) // IE
    { stxt= [for IE browser] }
else if(e.which) // Netscape/Firefox/Opera
    { stxt= [for ELSE browsers] }

   
 
 автор: retsoul   (07.12.2007 в 13:30)   письмо автору
 
   для: MIchail1982   (07.12.2007 в 13:26)
 

приму к сведенью :)
а что скрывается под надписью [for ELSE browsers]?
ответ желателен в виде кода :)
а то, что-то пока у самого не получается сделать так, чтобы в FF и Opere запахал тот скрипт, что выше :(

   
 
 автор: retsoul   (07.12.2007 в 13:57)   письмо автору
 
   для: retsoul   (07.12.2007 в 13:30)
 

какие вобще есть варианты приспособления этого кода для ФФ и Оперы? :)
может у них не поддерживается внедрение скриптов или опять таки нужно что-то добавлять? :)

   
 
 автор: MIchail1982   (07.12.2007 в 14:11)   письмо автору
 
   для: retsoul   (07.12.2007 в 13:57)
 

сорри, я по кросс не очень :0(

   
 
 автор: retsoul   (07.12.2007 в 14:15)   письмо автору
 
   для: MIchail1982   (07.12.2007 в 14:11)
 

да ладно, все мы не всегда можем сразу сверстать, спрограммировать кроссбраузерный сайт, скрипт :)
вот я сейчас и ищу, как это сделать, только вот почти никто не откликается, наверно тоже не знают :)

   
 
 автор: retsoul   (07.12.2007 в 16:27)   письмо автору
 
   для: retsoul   (07.12.2007 в 11:39)
 

заметил ещё одну странность:
в ие 7 не работает до тех пор, пока перед скриптом не будет что-нибудь написано

ну что, есть тут кто, кто знает в чём дело или хотя бы интересно? :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования