Javascript: событие Onclick не работает в IE - PullRequest
2 голосов
/ 02 ноября 2011

Я пытался гуглить это безрезультатно и перепробовал несколько вариантов. Все из которых работают в Firefox, но никто не работал в IE. У меня есть 2 события onclick на одной странице, и ни одно из них не работает в IE. Файл javascript для обоих событий вызывается:

<script type="text/javascript" src="openwindow.js"></script>

Первое событие - это якорное событие, которое я начал как:

<a href="" onclick="streamwindow()">Listen Live</a>

потом попробовал

<a href="javascript:streamwindow()">Listen Live</a>

, то:

<a href="javascript:void(0)" onclick="streamwindow()">Listen Live</a>

, то:

<a href="javascript:openwindow.js" onclick="streamwindow()">Listen Live</a>

, то:

<a onclick="javascript:streamwindow()">Listen Live</a>

Я думаю, это все, что я до сих пор пробовал для этого. Другое событие нажатия вызывается, когда пользователь нажимает на изображение. Снова работает нормально в Firefox, как есть, но не в IE. Код для второго события:

<td width="450px" align="center">
<p>Clip of The Day</p>
<img id="image2" src="images/sound.jpg" onclick="clipwindow()" />
</td>

Я играл с этим довольно много. Файл javascript (openwindow.js) содержит:

function clipwindow()
{
window.open ('clipoftheday.html', 'Clip of the Day', 'height=200',
'width=100', 'toolbar=no', 'menubar=no', 'scrollbars=no', 'resizable=no',
'location=no', 'directories=no', 'status=no')
}

function streamwindow()
{
window.open ('stream/index.html', 'Live Stream', 'height=70', 'width=500', 'toolbar=no', 'menubar=no', 'scroolbars=no', 'resizable=no', 'location=no', 'directories=no', 'status=no')
}

Пожалуйста, помогите мне с этим. Я с нетерпением жду ответа от людей.

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

В методе window.open() все эти параметры высоты, ширины и т. Д. Ожидаются в виде одной строки:

window.open('stream/index.html', 'LiveStream',
            'height=70,width=500,toolbar=no,menubar=no,scroolbars=no,resizable=no,location=no,directories=no,status=no');

Согласно MDN Имя окна и строка с функциями не должны содержать пробелов.Я не знаю, почему ваш существующий код работает в FF.

Большинство или все ваши <a> варианты должны работать, но из тех, что вы пробовали, я бы предложил этот:

<a href="javascript:void(0)" onclick="streamwindow()">Listen Live</a>

Лучше, однако, установить href на тот же URL-адрес, который будет открывать JS, чтобы ссылка все еще работала для пользователей с отключенным JS.Для пользователей с включенным JS вы затем возвращаете false из onclick, чтобы навигация по умолчанию не происходила, а также ваш щелчок:

<a href="stream/index.html" onclick="streamwindow(); return false;">Listen Live</a>

Если вышеупомянутое все еще не работает, я бы предложилвы временно заменяете содержимое своих функций простым сообщением alert("In function x");, чтобы проверить, вызывались ли функции вообще.

0 голосов
/ 02 ноября 2011

Две проблемы:

  1. Имя окна (для IE) должно быть действительным идентификатором, поэтому «Прямая трансляция» не будет работать. Попробуйте вместо этого «Live_Stream» или «LiveStream».

  2. Параметры параметров окна («прокручиваемый», «высота» и т. Д.) Необходимо объединить в одну строку, разделив их запятыми.

...