Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Скрипт не работает в опере, работает в IE (https://javascript.ru/forum/misc/1805-skript-ne-rabotaet-v-opere-rabotaet-v-ie.html)

XpycTuk 18.09.2008 22:36

Скрипт не работает в опере, работает в IE
 
В общем есть скрипт для создания галереи юзербаров на своем сайте.
И раньше он работал как часы, но после перехода на Opera 9.5 и выше он перестал работать. Хотя в IE все норм.

вот сам скрипт, точнее его первая часть

Код:

<script language='JavaScript' type="text/javascript">
<!--
function Insert(text,my_bar){
        if (text) {
            var site_url="www.nngl.ru";
            if (my_bar=="1") {
                var bar_url="/forum/uploads/"+text;
            } else {
                var bar_url="/images/userbars/"+text;
            }
            if (document.getElementById("code_forum1")) {
                var input=document.getElementById("code_forum1");
                input.value="";
            }
            if (document.getElementById("code_forum2")) {
                var input=document.getElementById("code_forum2");
                input.value="[img=http://"+site_url+bar_url+"]";
            }
            if (document.getElementById("code_html")) {
                var input=document.getElementById("code_html");
                input.value="<a href='http://"+site_url+"' target='_blank'><img src='http://"+site_url+bar_url+"' border='0'></a>";
            }
        } else {
                alert("Необратимая ошибка!");
        }
}
//-->
</script>

далее идут поля с textarea

и далее код продолжается
Код:

<?
 $dir = $conf[site_path]."images/userbars/";
 $url = "http://".$conf[site_url]."/images/userbars/";
 $no_view=array("..",".","Thumbs.db","thumbs.db");
 if ($dh = opendir($dir)) {
  while (!(($file = readdir( $dh ) ) === false ) ) {
  if ( is_file("$dir/$file") and (!in_array($file,$no_view)) ) {
    echo "<p align=center style='margin:5pt'><a href='javascript:Insert(\"".$file."\",0)'><img src='/images/userbars/".$file."' border='0'></a></p>";
  }
  }
 } else {
  echo "<p class=normal>Ошибка при чтении каталога. Обратитесь к администрации!</p>";
 }
 closedir($dh);
?>

Помогите пожалуйста. Видел такие же галереи на других сайтах, но у них в опере этот скрипт работает. Значит смогли как то сделать.
Заранее спасибо

Андрей Параничев 18.09.2008 23:30

Что именно не работает?

XpycTuk 18.09.2008 23:41

ой, простите, самого главного не написал )))

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

в Opera при клике ничего не происходит

http://www.nngl.ru/viewpage.php?page_id=16
вот можете сами проверить

Андрей Параничев 19.09.2008 16:11

XpycTuk,
Единственную ошибку выдает:
eval() illegal XML character
line 10: if (eval(hours) <10) {hours="0"+hours}

И вставка изображения вообще не работает. Попробуйте убрать этот код, или изменить eval на parseInt() или toString().

12345c 03.03.2009 22:24

XpycTuk: в коде есть 2 источника ошибок (хотя у меня везде работает), какая-то из них перестала поддерживаться Оперой:
1) одинаковые имена атрибутов name и id
textarea cols='80' rows='2' name='code_forum1' id='code_forum1' ...
2) обращение к полю ввода textarea через value (попробуйте через innerHTML).
input.value=...
Скачал оперу 9.64, и в ней страница работает. Может, просто блокировка скриптов у вас включена?

twolf 04.03.2009 10:49

12345c,
ужас. это как раз у Вас неправильно.
1) name и id могут быть одинаковыми.
2) обращение к полю ввода textarea ТОЛЬКО через value

XpycTuk 04.03.2009 10:57

всем спасибо, давно уже решил проблему
если кому интересен рабочий код - пишите, выложу

12345c 04.03.2009 12:10

twolf, могут, но когда-то в FF были проблемы с одинаковыми именами, поэтому пишу о догадках, что в 9.5 могло не работать. А innerHTML в textarea работает, проверьте. Хотя исторически, конечно, value.

twolf 06.03.2009 11:34

12345c,
1) что ж за скрипт должен быть такой, чтоб были из-за этого проблемы ;)
2) мне вот интересно, вы сами то пробовали? Исторически - только у микрософт. У них innerHTML появился. Для texеarea innerHTML работает только в ослах.

12345c 06.03.2009 14:50

2) да,
1) были проблемы с обращением к объекту у FF 1.xx каких-то.


Часовой пояс GMT +3, время: 16:16.