jquery click Событие не перенаправляет в href
-
30-09-2019 - |
Вопрос
У меня есть HTML-страница с встроенным флэш-фильмом, который имеет кнопку. Эта кнопка в Flash вызывает событие щелчков Lnkemail. Предполагается, что он останавливается на самом деле навигацию на новую страницу, но Event.PreventDefault (); И возвращение ложного из обработчика событий, похоже, не работает для меня. Кто-нибудь может дать представление?
Приведенный ниже пример работает в Chrome, но не удается в IE 7 и FF. В этих браузерах он перенаправляет на пустую страницу с объектом [Object], так как тело, а в FF есть URL-адрес, установленный на код JavaScript, который I выполняется из флэш-фильма. (т. е.: «JavaScript: jQuery ('# lnkemail'). Нажмите ();")
Ниже приведен код в Flash ActionScript.
cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
navigateToURL(
new URLRequest(
"javascript:jQuery('#lnkEmail').click();"
),
"_self"
);
}
На содержащей HTML-странице есть следующие скрипты и элементы:
<script type="text/javascript">
$(function(){
$.nyroModalSettings({
debug: true
});
$('#lnkEmail').click(function(event) {
event.preventDefault();
$.nyroModalManual({
url: 'demoRequest.aspx?Type=4'
});
return false;
});
});
</script>
А позже в том же файле:
<div id="box_stage_home">
<script type="text/javascript">
$(document).ready(function() {
$('#HomeAnimation').flash({
swf: 'Flash/index_page.swf',
height: 288,
width: 686,
wmode: 'transparent'
});
});
</script>
<div id="HomeAnimation"><!--IE 6.0--></div>
<a href="emailSend.aspx?Type=4" id="lnkEmail"> </a>
</div>
Решение 2
Выяснил правильный путь (спасибо Corneliu), чтобы сделать это, так думал, что я отправлю его здесь для справки. В файле HTML:
<script type="text/javascript">
function viewDemo() {
$.nyroModalManual({
url: 'emailSend.aspx?Type=4'
});
}
</script>
В Flash-файле:
import flash.system.Security;
cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
flash.system.Security.allowDomain("business.com");
ExternalInterface.call("viewDemo");
}
Другие советы
Посмотрите на navigateToURL
документация: http://livedocs.aDobe.com/flash/9.0/40-39/04/net/package.html#navigatetourl%28%29.. Отказ Это не намерена быть использованным с javascript:
Ссылки.
Делать то, что вы хотите, используйте ExternalInterface.call()
.