分析fancybox的URL功能失效



我运行一个电子商务网站,其中定义了以下函数。我不控制调用此函数的模板。它用于打开一个小的联系人窗口。URL随会话而变化。我需要以某种方式解析函数中的URL,并将其存储在一个变量中,以便使用我控制的纯HTML/CSS模板从fancybox调用它。你知道我该怎么做吗?以下是功能:

function OpenContactWindow() {
    window.open('/UI/ContactInfo.aspx?id=R6nq0s8aTFntDzsV-p-pXm22kKpENjtYjAsgwTtIa5Qhhf5CT4Ndx7Rg-e-e', '', 'fullscreen=no,toolbar=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,directories=no,location=no,width=800,height=600');
    return false;
}

在我控制的模板上,我有一个调用函数的链接,它在一个简单的弹出窗口中打开:

<a href="javascript:void(OpenContactWindow());">Contact Us</a>

这是我想出的代码,但它不起作用:

$(document).ready(function(){
$(".extLink").fancybox({
     'width' : '75%',
     'height' : '75%',
     'autoScale' : false,
     'transitionIn' : 'none',
     'transitionOut' : 'none',
     'type' : 'iframe'
 });
 }); 
});

<a class="extLink" href="javascript:void(OpenContactWindow());">Contact Us</a>

我应该使用什么代码?我是个新手

我对FancyBox一无所知,但这里有一种从函数中解析URL的方法:

var contactURL=OpenContactWindow.toString();
var contactURL=contactURL.split('window.open("')[1];
var contactURL=contactURL.split('",')[0];
//contactURL now contains the URL to the contact form

基本上,您只需使用.toString()将函数转换为字符串,然后使用几个split()来查找URL。您会注意到,尽管OpenContactWindow函数中的window.open()使用单引号,但它使用双引号。JavaScript会自动将单引号替换为双引号。如前所述,变量contactURL包含来自OpenContactWindow函数的URL。您应该能够从那里获得它,并在必要时使用FancyBox。

你可以在这里找到一个演示。只需单击"获取URL"按钮,它就会显示URL。检查源代码,您会发现它确实检查了函数。该函数使用一个随机字符串作为ID,该ID由PHP在每次重新加载页面时生成。点击按钮并显示URL后,页面将被重新加载,这样您就可以使用新生成的ID再次看到它在工作。

最新更新