Есть ли в любом случае отключить звук клика URL в IE, используя HTML, JavaScript или Flash? - PullRequest
8 голосов
/ 13 апреля 2010

У меня есть флэш-приложение, написанное в сценарии действия 2, и в какой-то момент оно выполняет несколько последовательных запросов JavaScript, используя getUrl ().

Они должны быть выполнены как отдельные запросы, потому что IE имеет ограничение на длину одного запроса и молча завершается неудачей, если этот предел пройден.

Когда это когда-либо случается, если у пользователя включен звук, возникает шквал "щелчок щелкает щелчком".

Ответы [ 5 ]

2 голосов
/ 14 апреля 2010

Нашли соответствующее решение здесь: http://www.julienlecomte.net/blog/2007/11/30/ Таким образом, вместо этого:

iframe.src = "...";

Вы делаете это:

var newIFrame = document.createElement("iframe");
newIFrame.src = "...";
iframe.parentNode.replaceChild(newIframe, iframe);

Можно ли загрузить внешние объекты с помощью таких методов DOM? Разве нет моста Flash-JavaScript, чтобы вы могли запускать некоторые JS-функции из своего Flash-скрипта? Это что-то вроде клуджа, но это может сработать.

0 голосов
/ 16 апреля 2010

Забудьте об этом, вы не можете исправить глупый дизайн браузера. MS предпочитает раздражать своих пользователей, это их проблема, а не ваша. Если вы исправите это для них, вы только лишите их стимула исправить это там, где это должно быть исправлено.

Пользователи, которых это раздражает, должны найти путь к настройкам звука.

0 голосов
/ 16 апреля 2010

Я не знаком с выражением «back-to-back call». Не могли бы вы рассказать, что должны делать эти звонки?

Если вы имеете в виду, что вы вызываете функции JS из AS и вам нужно использовать несколько вызовов getUrl, потому что вы хотите передать больше информации, чем IE может обработать в одном запросе (в котором вы скрываете свои вызовы JS), почему вы не используете ExternalInterface? Если я не ошибаюсь, эта функция была в AS2 и не должна создавать шум: -).

JavaScript:

<script language="JavaScript">
function alertUser(message) {
  alert(message);
  return true;
}
</script>

ActionScript:

import flash.external.ExternalInterface;

ExternalInterface.call("alertUser", "hello");

Я предполагаю, что проблема в количестве информации, которую вы хотите сообщить JS. В противном случае вы можете просто написать функцию-обертку JS и вызвать ее с помощью следующего:

getURL("javascript:myWrapper();");

И вы получите только один клик.

0 голосов
/ 13 апреля 2010

Вы можете изменить звук Windows «Start Navigation» на «None». Это отключит звук щелчка.

0 голосов
/ 13 апреля 2010

Меня это тоже долго мучило. Ничего общего, насколько я знаю: /

Рад быть исправленным, хотя!

J

...