2012-02-10 26 views
2

我運行一個電子商務網站,其中定義了以下功能。我不控制這個函數被調用的模板。它用於打開一個小的聯繫窗口。 URL從會話轉到會話。我需要以某種方式將該URL解析出該函數,並將其存儲在一個變量中,以使用我控制的純HTML/CSS模板從fancybox調用該變量。你知道我該怎麼做?下面是函數:爲fancybox解析URL的功能嗎?

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> 

我應該使用什麼代碼?我是新手! =)

回答

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。只需點擊獲取URL按鈕,它會顯示您的網址。查看源代碼,你會發現它確實在檢查函數。該函數使用隨機字符串作爲ID,每次頁面重新加載時由PHP生成。單擊按鈕並顯示URL後,頁面將重新加載,以便您可以再次使用新生成的ID查看該頁面。

+0

哇哇謝謝分享!它看起來像我所需要做的是創建一個href,它應該工作。 我做了一些研究,以及與此想出了: Contact Us 請問 這項工作? – JD06 2012-02-10 04:18:07

+0

關閉。您需要創建鏈接,初始化鏈接到如下內容:blank(Contact Us),然後在$(document).ready塊中,在FancyBox位之前,將我的代碼加上$(「。extLink」)。attr( 「href」,contactURL); – 2012-02-10 04:44:01