2015-11-17 4 views
6

मैंने jQuery टैब बनाए हैं और मूल पृष्ठ पर एक जेएसपी पृष्ठ एम्बेड किया है। मैंने दोनों पृष्ठों पर विंडो आकार बदलने की घटनाओं पर फोन किया है। लेकिन आंतरिक पृष्ठ फ़ंक्शन को शामिल नहीं किया जाता है।ऑब्जेक्ट टैग पर विंडो का आकार बदलें जावास्क्रिप्ट पर

आंतरिक पृष्ठ के लिए मेरे पास एक एसवीजी तत्व है जिसे हर बार विंडो का आकार बदलना पड़ता है।

sLinkPageToJunction = '<%=base1%>' + "/InnerTabbedPage.jsp?IntersectionName=" + strIntersectionName + "&FrameName=" + strFrameName + "&ip=" + '<%=ServerIP %>' + "&port=" + '<%=ServerPORT %>' + "&InterCorridorName=" + svgfilename; 
if (document.getElementById("JnLive" + strIntersectionName) == null) { 
    //var nextTab = $('#tabs li').size()+1; 
    Tabcount = $('#tabs li').size(); 
    // create the tab 
    $('<li><a href="#tab' + strIntersectionName + '" data-toggle="tab">' + strIntersectionName + '&nbsp;&nbsp; <button class="close closeTab" align="right" "type="button">x</button></a></li>').appendTo('#tabs'); 

    // create the tab content 

    $('<div class="tab-pane" id="tab' + strIntersectionName + '"> <div id="JnLive' + strIntersectionName + '" class="col-sm-6" style="margin-top: 1%"> </div>').appendTo('.tab-content'); 


    var heightvalue = $(window).height(); 
    var widthvalue = $(window).width() 

    //alert("---->"+heightvalue+"---->"+widthvalue); 

    var url = "<object id=obj'" + strIntersectionName + "' data='" + sLinkPageToJunction + "' height='" + heightvalue + "' width='" + widthvalue + "'></object>"; 

    $("#JnLive" + strIntersectionName).html(url); 

    // make the new tab active 
    $('#tabs a:last').tab('show'); 
    OpenedTabbedJunctionNames[Tabcount - 1] = strIntersectionName; 
    OpenedTabbedJunctionFrameNames[Tabcount - 1] = strFrameName; 

    registerCloseEvent(); 
} 

तो यह एक नया टैब बनाता है यदि यह पहले से मौजूद नहीं है।

अब मेरी windowresize पर भीतरी पृष्ठ पर ईवेंट

window.addEventListener('resize', changeframesizeJN) ; 
बाहरी पृष्ठ पर

यह

window.addEventListener('resize', changeframesize) ; 

है लेकिन जब मैं चयनित changeframesizeJN टैब के साथ विंडो का आकार बदलने लागू नहीं है।

मैं यह कैसे कर सकता हूं?

पीएस: मुझे नहीं पता कि मैंने इस जानकारी के उत्तर देने के लिए आवश्यक जानकारी दी है या नहीं। तथ्य यह है कि मुझे यकीन नहीं है कि इस सवाल से कैसे पूछें।

+0

एक http://jsfiddle.net/ जोड़ने अगर आप कर सकते हैं (या एक टुकड़ा कोड) पुन: पेश करने – Blag

+0

तो अंदर दस्तावेज़ ' 'तत्व एक ही डोमेन पर है, आप अपने ऑब्जेक्ट को 'object.contentDocument' के साथ पैरेंट विंडो से एक्सेस कर सकते हैं जो आपको उन संशोधनों को सीधे आगे बढ़ने की अनुमति देगा जो आप करना चाहते हैं। – Kaiido

+0

@ ब्लाग, मैं एक jsfiddle पुन: पेश करने की स्थिति में नहीं था। अगर मैं कर सकता तो मैं निश्चित रूप से ऐसा करता। पीएस के कारणों में से एक है। – Tattu

उत्तर

1

आप अपने पैनल से जो कुछ भी बता सकते हैं उससे आप अपने पैनल को एक निश्चित चौड़ाई और ऊंचाई देते हैं। आपको अपने मूल पृष्ठ के सीएसएस को इसके माता-पिता के साथ आकार बदलने के लिए बदलना चाहिए।

वैकल्पिक रूप से आप अपने बाहरी माता-पिता के आकार के साथ-साथ स्वयं के आंतरिक पृष्ठ फ़ंक्शन को भी कॉल कर सकते हैं।

window.addEventListener('resize', function() { 
    changeframesize(); 
    window.frames['yourIframeName'].changeframesizeJN(); 
}); 

बस सुनिश्चित करें कि आप ताकि आप इसे चुन सकते हैं अपने भीतर की खिड़की एक नाम देना हो जाता है: एक ही डोमेन पर अपने जब से तुम यह कर कोई समस्या नहीं होगी। या यह के सूचकांक का उपयोग लेकिन मैं एक नाम का इस्तेमाल कर यह पठनीय रखने के लिए सिफारिश करेंगे:

window.frames[0].changeframesizeJN(); 
+0

धन्यवाद दोस्त, यह वही है जो मैं चाहता था। मैं फ्रेम इंडेक्स का उपयोग कर रहा हूं, हालांकि अन्य बाधाओं के कारण। हालांकि मैं पैनल को कोई चौड़ाई नहीं दे रहा था। इसका बूटस्ट्रैप पैनल तो पैनल उत्तरदायी था। आंतरिक पृष्ठ में एसवीजी टैग केवल एक चीज थी। तो document.get मुझे ऐसा नहीं दे रहा था ताकि मैं एसवीजी का आकार बदल सकूं। – Tattu

0

की तरह, वस्तु टैग पर आकार जोड़ने का प्रयास करें:

var url = "<object id=obj'" + strIntersectionName + "' onresize='changeframesizeJN()' data='" + sLinkPageToJunction + "' height='" + heightvalue + "' width='" + widthvalue + "'></object>"; 

हैं कि तब काम करता है आप, वस्तु, अपने विंडो के रूप में ही करने के लिए इसे बाध्य कर सकते हैं बजाय वस्तु तत्व के साथ छोड़कर।

objectElement.addEventListener('resize', changeframesizeJN) ; 
+0

धन्यवाद, लेकिन ऑब्जेक्ट ऑब्जेक्ट काम नहीं किया। window.frames मेरे लिए चाल थी। – Tattu

संबंधित मुद्दे