Javascript jQuery单击事件未重定向到href
我有一个嵌入flash电影的HTML页面,里面有一个按钮。flash中的此按钮调用lnkEmail的click事件。它应该停止实际导航到一个新页面,但是event.preventDefault();从事件处理程序返回false似乎对我不起作用。谁能提供见解 下面的示例在Chrome中工作,但在IE 7和FF中失败。在这些浏览器中,它重定向到一个空白页面,其中Object[Object]作为主体,在FF中,url设置为我在Flash电影中执行的javascript代码。(即:“javascript:jQuery('#lnkEmail')。单击();”) 下面是Flash ActionScript中的代码Javascript jQuery单击事件未重定向到href,javascript,jquery,flash,nyromodal,preventdefault,Javascript,Jquery,Flash,Nyromodal,Preventdefault,我有一个嵌入flash电影的HTML页面,里面有一个按钮。flash中的此按钮调用lnkEmail的click事件。它应该停止实际导航到一个新页面,但是event.preventDefault();从事件处理程序返回false似乎对我不起作用。谁能提供见解 下面的示例在Chrome中工作,但在IE 7和FF中失败。在这些浏览器中,它重定向到一个空白页面,其中Object[Object]作为主体,在FF中,url设置为我在Flash电影中执行的javascript代码。(即:“javascript
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>
$(函数(){
$.nyroModalSettings({
调试:正确
});
$('#lnkEmail')。单击(函数(事件){
event.preventDefault();
$.nyroModalManual({
url:'demoRequest.aspx?Type=4'
});
返回false;
});
});
然后在同一文件中:
<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>
$(文档).ready(函数(){
$('#HomeAnimation').flash({
swf:'Flash/index_page.swf',
身高:288,
宽度:686,
wmode:'透明'
});
});
查看导航URL
文档:。它不打算与javascript:
链接一起使用
要想做你想做的事情,请使用
ExternalInterface.call()
找到了正确的方法(谢谢corneliu),所以我想我会把它放回这里作为参考。在html文件中:
<script type="text/javascript">
function viewDemo() {
$.nyroModalManual({
url: 'emailSend.aspx?Type=4'
});
}
</script>
忘了提到这在Chrome中是有效的。但在IE7和FF中,它重定向到一个带有Object[Object]和url为javascript:jQuery(“#lnkEmail”)的页面;。欢迎来到堆栈溢出!您可以通过单击问题右下角的
edit
链接来编辑原始帖子-无需对此类内容进行评论。添加void(0);在调用navigateToURL()之后,最终成为解决方案。空隙(0);告诉浏览器不要专门打开新页面。在Flash文档页面的某个地方找到了这个,现在记不起来了。哦,是的,必须将allowScriptAccess=“always”添加到flash变量中。我现在也看到了如何使用ExternalInterface来做这件事,这看起来确实是正确的方法。。。添加void(0);在调用了lnkEmail元素上的click()之后,javascript内部最终成为了解决方案。“javascript:jQuery('#lnkEmail')。click();void(0);”太棒了,嘿,Rob,你应该能够接受自己的答案。这将有助于任何其他人谁可能找到这个搜索。
import flash.system.Security;
cmdDemo.addEventListener(MouseEvent.CLICK, clickHandler);
function clickHandler(event:MouseEvent):void {
flash.system.Security.allowDomain("business.com");
ExternalInterface.call("viewDemo");
}