Script.src и OPERA

WoLFiks

Не курю...
Script.src и OPERA

Никак не могу заставить работать в Opere подобный код.
В IE все ОК.

<script language="javascript" id="ldr" src=""></script>
<script language="javascript">
function loadOption(idElemJS)
{
document.getElementById(idElemJS).src='/t.php';
}
</script>
<form action="/t.php" method="post" name="form1" id="form1">
<select name="m" id="m" onchange="javascript:loadOption('ldr');">
<option value="111" selected>111</option>
<option value="222">222</option>
*****
</select>
</form>


---- echo t.php ---->
alert('Hello');
----

OPERA не поддерживает document.getElementById(idElemJS).src= ?
 

sayber

Новичок
WoLFiks
var head = document.getElementsByTagName('head').item(0);
var js = document.createElement('script');
js.src = '/script.js';
head.appendChild(js);
 

WoLFiks

Не курю...
sayber
Впринципе так и организовал.
Просто суть в том, что если есть на странице <script> с определенным id, то невозможно в opere сделать просто src=...... для этого, существующего уже, тега... (
 

vovanium

Новичок
Вообще-то там всё просто, если ты не изменяешь src (т.е. присваиваешь один и тот же url), то опера повторно не загружает и не выполняет скрипт. Чтобы это побороть достаточно добавить к ссылке изменяющийся параметр, т.е. к примеру:

document.getElementById(idElemJS).src='/t.php?' + Math.random();
 

WoLFiks

Не курю...
vovanium
Да нет.
Мой код в топике упрощен. На самом деле в Math.random(); нет необходимости. Функция по onchange вызывается с аргументом this.value т.е. loadOption('ttttt',this.value), соответственно сама функция немного другая.
function loadOption(idElemJS,nnn)
{
document.getElementById(idElemJS).src='/t.php?test='+nnn;
}

Но от этого суть НЕ изменяется. Не хочет другой src получать и все тут.
 

vovanium

Новичок
WoLFiks
Хм, да реально не хочет изменять, меняет только первый раз с пустого на не пустое значение. И все.
Лечится похоже только созданием нового JS объекта. Во вмяком случае такой вариант работает
PHP:
<?php
if (!empty($_GET['v'])){
	echo "alert('Hello {$_GET['v']}')";exit;
}
?>
<script language="javascript" id="ldr" src="./test1.php/?v=111"></script>
<script language="javascript">
function loadOption(idElemJS, value)
{
var oScript = document.createElement('script');
oScript.src='./test1.php/?v=' + value ;
document.appendChild(oScript);
}
</script>
<form action="/test1.php" method="post" name="form1" id="form1">
<select name="m" id="m" onchange="loadOption('ldr', this.value);">
<option value="111" selected>111</option>
<option value="222">222</option>

</select>
</form>
 
Сверху