2012-02-10 9 views
2

私は以下の機能が定義されているeコマースのウェブサイトを運営しています。私はこの関数が呼び出されるテンプレートを制御しません。これは、小さいコンタクトウィンドウを開くために使用されます。 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を見つけることができます。 Get URLボタンをクリックすると、URLが表示されます。ソースをチェックすると、実際にその機能がチェックされます。この関数はIDにランダムな文字列を使用します。この文字列は、ページがリロードされるたびにPHPによって生成されます。ボタンがクリックされてURLが表示された後、ページは再ロードされ、新たに生成されたIDとともに作業中に再び見ることができます。

+0

ありがとうございました!私が行う必要があるのはhrefを作成するだけで動作するはずです。 は、私はいくつかの研究を行なったし、この思い付いた: Contact Us ウィルこの作品? – JD06

+0

閉じる。最初にabout:blank(Contact Us)のようなリンクを作成し、$(document).readyブロック内のFancyBoxビットの前に、自分のコードに$( "extLink")を置きます。attr "href"、contactURL); –

関連する問題