解析fancybox的功能URL?

时间:2012-02-10 03:18:49

标签: javascript jquery fancybox

我运营一个电子商务网站,其中定义了以下功能。我不控制调用此函数的模板。它用于打开一个小的接触窗口。 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>

我应该使用的代码是什么?我是新手! =)

1 个答案:

答案 0 :(得分:3)

我对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但是必要。

您可以找到演示here。只需点击获取网址按钮,它就会显示网址。查看源代码,您将看到它确实检查了该功能。该函数使用随机字符串作为ID,每次重新加载页面时由PHP生成。单击按钮并显示URL后,将重新加载页面,以便您可以使用新生成的ID再次查看该页面。