我运营一个电子商务网站,其中定义了以下功能。我不控制调用此函数的模板。它用于打开一个小的接触窗口。 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>
我应该使用的代码是什么?我是新手! =)
答案 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再次查看该页面。