2012-02-10 2 views
2

다음 기능이 정의 된 전자 상거래 웹 사이트를 운영합니다. 이 함수가 호출되는 템플릿을 제어하지 않습니다. 작은 연락처 창을 여는 데 사용됩니다. URL이 세션마다 변경됩니다. 필자는 함수에서 URL을 구문 분석하고 변수로 저장하여 제어하는 ​​일반 HTML/CSS 템플릿을 사용하여 fancybox에서 호출해야합니다. 내가 어떻게이 일을 할 수 있는지 아십니까? 여기에 기능입니다 : 내가 제어, I는 함수가 호출되는 링크가 않는 템플릿에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 구문 분석하는 방법입니다하지 않습니다 그냥 (로 .toString와 문자열로 변환 기능, 기본적으로

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 

를) 그런 다음 두 개의 split()을 사용하여 URL을 찾으십시오. OpenContactWindow 함수의 window.open()은 작은 따옴표를 사용하지만 큰 따옴표를 사용합니다. JavaScript는 작은 따옴표를 큰 따옴표로 자동 대체합니다. 언급 한대로 변수 contactURL에는 OpenContactWindow 함수의 URL이 포함됩니다. 당신은 거기에서 그것을 가지고 FancyBox를 사용할 수 있어야합니다.

데모 here을 찾을 수 있습니다. Get URL 버튼을 클릭하면 URL이 표시됩니다. 소스를 확인하면 실제로 기능을 확인하는 것을 볼 수 있습니다. 이 함수는 페이지가 다시로드 될 때마다 PHP에 의해 생성되는 ID에 임의의 문자열을 사용합니다. 버튼을 클릭하고 URL을 표시하면 새로 생성 된 ID를 사용하여 다시 볼 수 있도록 페이지가 다시로드됩니다.

+0

와우 주셔서 감사합니다. 내가해야 할 일은 href를 만드는 것만 큼 효과가있는 것 같습니다. 나는 몇 가지 조사를했고,이 함께했다 : Contact Us 윌이 작품? – JD06

+0

닫기. 공백 (Contact Us), FancyBox 비트 앞에 $ (document) .ready 블록에 다음과 같이 $ (". extLink")가 붙는 링크를 생성해야합니다. attr "href", contactURL); –

관련 문제