Jquery colorbox - 在现有颜色框内重定向/转发

mmi*_*ilo 2 javascript jquery colorbox

所以我装了一个彩盒.我希望能够重定向/转发到现有颜色框内的另一个页面.

window.location = href; 不会在这里工作.

编辑:更具体,我想拦截表单提交,并在必要时重定向.

    $("#search-center-form").live("submit", function () {
        alert('clicked');
        $.post('myurl', function(data) {
            console.log(data);
            if (data) {
                $.colorbox({href:'http://www.google.com/'});
            }
                }, 'json');
        return false;
    });
Run Code Online (Sandbox Code Playgroud)

原始颜色框是这样打开的:

$.fn.colorbox({'href': block, 'open':true, 'inline':true, 'width':'530px', 'height':'260px'});
Run Code Online (Sandbox Code Playgroud)

现在我正在尝试将外部URL加载到该颜色框中.我想AJAX是一个选项,但如果你可以在彩盒中加载iFrame,这应该是可能的,不应该吗?

谢谢!

Don*_*ghn 6

你几乎就在那里,但有几个原因导致代码无效.

一个是你试图在没有适当选项的情况下从另一个域加载内容.为了做到这一点,你需要设置iframe:true,widthheight.如果您要加载自己域中的内容,则可能不需要该iframe选项(然后颜色框将能够自动确定宽度和高度).如果加载了所有必需的css或js,那么您不需要它.如果你的新页面中有一些<head>尚未加载的css或js ,那么你需要iframe.

另一个问题不是错误,而是Google如何处理请求.也就是说,在iframe加载他们的网站的情况下,他们没有; 他们会阻止请求,因此您将无法使用google与colorbox(没有创意处理).顺便说一句,尽管处理方式不同,但stackoverflow也不允许这样做,所以不要费心去处理它.

在任何情况下,您的颜色框重定向(在您的回调中)应如下所示:

$.colorbox({href:'http://www.yahoo.com', iframe:true, width:"75%", height: "75%"});
Run Code Online (Sandbox Code Playgroud)