Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
href=";javascript:…”;在FireFox的FB Iframe中,语法突然不起作用_Javascript_Asp.net_Facebook_Iframe - Fatal编程技术网

href=";javascript:…”;在FireFox的FB Iframe中,语法突然不起作用

href=";javascript:…”;在FireFox的FB Iframe中,语法突然不起作用,javascript,asp.net,facebook,iframe,Javascript,Asp.net,Facebook,Iframe,突然,我所有的ASP.NET链接按钮(使用href=javascript:_PostBack…语法)都停止了对所有FireFox用户(各种版本)的工作 我缩小了范围,发现所有href=javascript:在FB Iframe中都不起作用 示例:这里有一个简单的例子:(使用Firefox访问此页面,以便自己查看)这是一个简单的html代码,使用JS调用alert('单击') 然而,在FB IFrame之外,或者在一个简单的IFrame内,这段代码都能很好地工作,在除FireFox之外的所有其

突然,我所有的ASP.NET链接按钮(使用href=javascript:_PostBack…语法)都停止了对所有FireFox用户(各种版本)的工作

我缩小了范围,发现所有href=javascript:在FB Iframe中都不起作用

示例:这里有一个简单的例子:(使用Firefox访问此页面,以便自己查看)这是一个简单的html代码,使用JS调用alert('单击')


然而,在FB IFrame之外,或者在一个简单的IFrame内,这段代码都能很好地工作,在除FireFox之外的所有其他浏览器中都能工作

问题:为什么它在FF中不起作用

html页面的确切代码:

<a onclick="alert('clicked');" >(1) WORKS: CLICK ME - How come this onclick=alert(a); works</a
<a href="javascript:alert('clicked');" >(2) DOES NOT WORK: href="javascript:alert('clicked');</a>

所以只需使用jQuery将其从a href更改为click()或onclick code.:-)

编辑:尝试以下jQuery:

$(function() { 
    var isInIframe = (window.top!=window); 
    if ($.browser.mozilla && isInIframe) {
        $('a[href^=javascript:]').each(function() { 
            var newOnClick = $(this).attr('href').replace(/^javascript:/i, ''); 
            var existingOnClick = $(this).attr('onclick'); 
            if (existingOnClick)
                newOnClick = existingOnClick + ';' + newOnClick; 
            $(this).attr('onclick', newOnClick); 
         }); 
    } 
});

它没有经过测试,它不是最有效的JS,但目前我只能管理它。

所以只需使用jQuery将其从a href更改为click()或onclick code.:-)

编辑:尝试以下jQuery:

$(function() { 
    var isInIframe = (window.top!=window); 
    if ($.browser.mozilla && isInIframe) {
        $('a[href^=javascript:]').each(function() { 
            var newOnClick = $(this).attr('href').replace(/^javascript:/i, ''); 
            var existingOnClick = $(this).attr('onclick'); 
            if (existingOnClick)
                newOnClick = existingOnClick + ';' + newOnClick; 
            $(this).attr('onclick', newOnClick); 
         }); 
    } 
});
它没有经过测试,不是最有效的JS,但这是目前我所能做的。

看看这是否有帮助 看看这是否有帮助
格雷格尔的想法很好。但是这个功能对我来说不起作用。。。。。 我的浏览器是firefox 7.0.1,使用jquery-ui-1.8.2

我会尝试下面的代码

....
var existingOnClick = $(this).attr('onclick');
alert('existingOnClick');
....
在我的例子中,它是show-up函数onclick(event){…click-codes…}

所以我修改代码就像

$(function() { 
var isInIframe = (window.top!=window); 
if ($.browser.mozilla && isInIframe) {
    $('a[href^=javascript:]').each(function() { 
        var newOnClick = $(this).attr('href').replace(/^javascript:/i, ''); 
        var existingOnClick = this.getAttribute('onclick'); 
        existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick ;
        this.setAttribute('onclick', existingOnClick );
     }); 
} 
});

格雷格尔的想法很好。但是这个功能对我来说不起作用。。。。。 我的浏览器是firefox 7.0.1,使用jquery-ui-1.8.2

我会尝试下面的代码

....
var existingOnClick = $(this).attr('onclick');
alert('existingOnClick');
....
在我的例子中,它是show-up函数onclick(event){…click-codes…}

所以我修改代码就像

$(function() { 
var isInIframe = (window.top!=window); 
if ($.browser.mozilla && isInIframe) {
    $('a[href^=javascript:]').each(function() { 
        var newOnClick = $(this).attr('href').replace(/^javascript:/i, ''); 
        var existingOnClick = this.getAttribute('onclick'); 
        existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick ;
        this.setAttribute('onclick', existingOnClick );
     }); 
} 
});

同样运行FF7.0.1对我来说都不起作用,但一个小的改变也让我走上了正轨

$(function () {
    var isInIframe = (window.top != window);
    if ($.browser.mozilla && isInIframe) {
        $("a").each(function () {
            var newOnClick = $("a").attr("href").replace(/javascript:/gi, '');
            var existingOnClick = this.getAttribute('onclick');
            existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick;
            this.setAttribute('onclick', existingOnClick);
        });
    }
});

多亏了上面的海报

也运行了FF 7.0.1,这对我来说都不管用,但一个小小的改变也让我走上了正轨

$(function () {
    var isInIframe = (window.top != window);
    if ($.browser.mozilla && isInIframe) {
        $("a").each(function () {
            var newOnClick = $("a").attr("href").replace(/javascript:/gi, '');
            var existingOnClick = this.getAttribute('onclick');
            existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick;
            this.setAttribute('onclick', existingOnClick);
        });
    }
});
    $(function () {
        var isInIframe = (window.top != window);
        if ($.browser.mozilla && isInIframe) {
            $('a[href^="javascript:"]').each(function () {
                var newOnClick = $(this).attr('href').replace(/^javascript:/i, '');
                var existingOnClick = this.getAttribute('onclick');
                existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick;
                this.setAttribute('onclick', existingOnClick);
            });
        }
    });
多亏了上面的海报

    $(function () {
        var isInIframe = (window.top != window);
        if ($.browser.mozilla && isInIframe) {
            $('a[href^="javascript:"]').each(function () {
                var newOnClick = $(this).attr('href').replace(/^javascript:/i, '');
                var existingOnClick = this.getAttribute('onclick');
                existingOnClick = (existingOnClick ? (existingOnClick + ';') : '') + newOnClick;
                this.setAttribute('onclick', existingOnClick);
            });
        }
    });
这是一个很好的例子。我在我们的Facebook应用程序上也遇到了同样的问题。 我刚刚将此部分从[href^=javascript:]更改为[href^=“javascript:] 而且它工作得很好

这是一个很好的例子。我在我们的Facebook应用程序上也遇到了同样的问题。 我刚刚将此部分从[href^=javascript:]更改为[href^=“javascript:]

没有
href
属性的
元素无效。(b) 也许它与@david有关,抱歉,用这个问题编辑了这篇文章。基本上,我不明白为什么这该死的东西停止工作了。。。。一定是facebook上的JS代码在做这件事。。。不知道什么,JS不是我的强项side@FelixKling第一个链接是有效的。无论是否使用相同的HREF,链接都会启动JS警报。第二个没有,只有insider Facebooks Iframe,并且只有在Firefox下,当我单击(2)时,它才发出警报,因为上面在FF 3.0上测试的所有三个链接在控制台中是否有任何错误?(a)
a
没有
href
属性的元素无效。(b) 也许它与@david有关,抱歉,用这个问题编辑了这篇文章。基本上,我不明白为什么这该死的东西停止工作了。。。。一定是facebook上的JS代码在做这件事。。。不知道什么,JS不是我的强项side@FelixKling第一个链接是有效的。无论是否使用相同的HREF,链接都会启动JS警报。这是第二个没有,而且只有insider Facebooks Iframe,而且只有在Firefox下,当我单击(2)时,它才发出警报单击,对于上面在FF 3.0上测试的所有三个链接,控制台中是否有任何错误?是的,这是一个解决方法,但这都是ASP.NET生成的代码,并且它仅在FF和FB Iframe中不起作用。。。FF或FB Iframe一定有问题…:(可能吧。但是当你弄明白的时候,把这当作一个临时的解决办法。只有当用户运行firefox并且在iframe中运行时才这样做,这样其他用户才不会受到影响。谢谢Greg!我会试试这个。你不会碰巧手头只有jquery脚本吧?:)我的JS和jquery技能很差:(@GregBala你是个幸运的人(名字很棒)。如果我的更新代码有效,请接受我的回答-我真的想获得1k代表!:-)是的,这是一个解决办法,但这都是ASP.NET生成的代码,它只在FF中不起作用,在FB IFrame中…FF或FB IFrame中一定有问题…:(可能吧。但是当你弄明白的时候,把这当作一个临时的解决办法。只有当用户运行firefox并且在iframe中运行时才这样做,这样其他用户才不会受到影响。谢谢Greg!我会试试这个。你不会碰巧手头只有jquery脚本吧?:)我的JS和jquery技能很差:(@GregBala你是个幸运的人(名字很棒)。如果我的更新代码有效,请接受我的回答-我真的很想超过1k代表!:-)谢谢David,这是有道理的,但是,我不明白为什么它在框架之外工作,而不是inframe…这是一个长线如果你的/客户端浏览器最近已经更新尝试清除你的缓存并查看它修复它Hanks David,这是有道理的,但是,我不明白为什么它在框架之外工作,而不是inframe…这是一个长线如果你的/客户端ts浏览器最近已更新尝试清除缓存并查看其修复Hanks Johnny!我在升级到jquery 1.6.4时注意到了相同的问题!非常棒,一个小时前才遇到此问题谢谢Johnny!我在升级到jquery 1.6.4时注意到了相同的问题!非常棒,大约一个小时前才遇到此问题