दिलचस्प पोस्ट
पृष्ठ लोड पर JSF प्रबंधित बीन कार्रवाई को आमंत्रित करें सूचक अंकगणित में सी "+" (प्लस चिन्ह) सीएसएस चयनकर्ता का मतलब क्या है? JSON के लिए XSLT बराबर LINQ में समूह द्वारा सिस्टम टाइमज़ोन सेटिंग कैसे प्राप्त करें और इसे pytz.timezone पास करें? अंतिम उपाय की प्रदर्शन अनुकूलन रणनीतियों एकीकरण और इकाई परीक्षणों के बीच अंतर क्या है? लिनक्स में एक फाइल को सिमलिंक कैसे करें? कैसे @ सिंक्रनाइज़ लॉक / अनलॉक में उद्देश्य सी? क्या आईफोन / एंड्रॉइड ब्राउज़र्स सीएसएस / मीडिया हाथ में हैं? WPF के साथ एक लॉग दर्शक लागू करना UIView और initWithFrame और एक एनआईबी फ़ाइल। मैं एनआईबी फ़ाइल लोड कैसे कर सकता हूं? जावा में सार वर्ग सीएसएस में एचटीएमएल colspan

जावास्क्रिप्ट के साथ एक आइफ्रेम स्क्रोल करना?

मैं गतिशील रूप से जावास्क्रिप्ट के साथ एक iframe लोड इसे लोड होने के बाद, मैं इसे कैसे एक विशिष्ट संख्या के पिक्सेल स्क्रॉल कर सकता हूं (यानी IFrame में पेज के बाद लोड हो रहा है, मैं पेज के किसी निर्दिष्ट क्षेत्र में iframe स्क्रॉल कैसे बना सकता हूं?)

वेब के समाधान से एकत्रित समाधान "जावास्क्रिप्ट के साथ एक आइफ्रेम स्क्रोल करना?"

यदि आइफ्रेम लोड हो रहा है, तो पता लगाने के लिए आप onload इवेंट का उपयोग कर सकते हैं, और वहां आप सामग्री पर scrollTo फ़ंक्शन का उपयोग कर सकते हैंआइफ्रेम का वायुमंडल, पिक्सेल की परिभाषित स्थिति तक बाएं और ऊपर (एक्स, वाई) से स्क्रॉल करने के लिए:

 var myIframe = document.getElementById('iframe'); myIframe.onload = function () { myIframe.contentWindow.scrollTo(xcoord,ycoord); } 

आप यहाँ एक उदाहरण काम कर सकते हैं ।

नोट: यदि दोनों पृष्ठ एक ही डोमेन पर रहते हैं तो यह काम करेगा।

नेल्सन की टिप्पणी से प्रेरित मैंने टिप्पणी की

जावास्क्रिप्ट के लिए वैकल्पिक हल एक बाह्य डोमेन पर आने वाले दस्तावेज़ पर एसकॉलटॉ () का उपयोग करने के संबंध में समान मूल नीति है।

इसके लिए बहुत आसान काम में एक डमी एचटीएमएल पेज का निर्माण होता है जो उसमें बाहरी वेबसाइट की मेजबानी करता है, फिर कॉल कर रहा है। उस पृष्ठ पर स्क्रॉलटो (एक्स, वाई) को एक बार भरी हुई है। फिर आपको केवल एक चीज की ज़रूरत है एक फ्रेम या एक आइफ्रेम इस वेबसाइट को ऊपर लाती है।

ऐसा करने के लिए कई अन्य तरीके हैं, यह ऐसा करने का सबसे आसान तरीका है।

* नोट करें कि स्क्रॉल सलाखों के अधिकतम मूल्य को समायोजित करने के लिए ऊँचाई बड़ी होनी चाहिए।

–home.htm

 <html> <head> <title>Home</title> </head> <frameset rows="*,170"> <frame src=body.htm noresize=yes frameborder=0 marginheight=0 marginwidth=0 scrolling=no> <frame src="weather.htm" noresize=yes frameborder=0 marginheight=0 marginwidth=0 scrolling=no> </frameset> </html> 

–weather.htm

 <html> <head> <title>Weather</title> </head> <body onLoad="window.scrollTo(0,170)"> <iframe id="iframe" src="http://forecast.weather.gov/MapClick.php?CityName=Las+Vegas&state=NV&site=VEF&textField1=36.175&textField2=-115.136&e=0" height=1000 width=100% frameborder=0 marginheight=0 marginwidth=0 scrolling=no> </iframe> </body> </html> 

नेल्सन और क्रिस की टिप्पणियों से प्रेरित, मैंने एक मूल और एक iframe साथ समान मूल नीति का समाधान करने का एक तरीका पाया है:

HTML:

 <div id='div_iframe'><iframe id='frame' src='...'></iframe></div> 

सीएसएस:

 #div_iframe { border-style: inset; border-color: grey; overflow: scroll; height: 500px; width: 90% } #frame { width: 100%; height: 1000%; /* 10x the div height to embrace the whole page */ } 

अब मान लें कि मैं उस स्थान पर स्क्रॉल करके iframe पृष्ठ के पहले 438 (ऊर्ध्वाधर) पिक्सेल को छोड़ना चाहता हूं।

जे एस समाधान:

 document.getElementById('div_iframe').scrollTop = 438 

JQuery समाधान:

 $('#div_iframe').scrollTop(438) 

सीएसएस समाधान:

 #frame { margin-top: -438px } 

(अकेले प्रत्येक समाधान पर्याप्त है, और सीएसएस एक का प्रभाव थोड़ा अलग है क्योंकि आप इरेराम पृष्ठ के शीर्ष को देखने के लिए स्क्रॉल नहीं कर सकते हैं।)

एक jQuery समाधान:

 $("#frame1").ready( function() { $("#frame1").contents().scrollTop( $("#frame1").contents().scrollTop() + 10 ); }); 

सामग्री की ऊर्ध्वाधर स्क्रॉल-ऑफसेट को विशिष्ट पिक्सल (जैसे 100) में सेट करने के लिए फ्रेम की सामग्री की scrollTop प्रॉपर्टी का उपयोग करें:

 <iframe src="foo.html" onload="this.contentWindow.document.documentElement.scrollTop=100"></iframe> 

क्रिस की टिप्पणी के आधार पर

CSS

 .amazon-rating { width: 55px; height: 12px; overflow: hidden; } .rating-stars { left: -18px; top: -102px; position: relative; } 

HAML

 .amazon-rating %iframe.rating-stars{src: $item->ratingURL, seamless: 'seamless', frameborder: 0, scrolling: 'no'} 

या, आप iframe पर एक मार्जिन-टॉप सेट कर सकते हैं … एक हैक का एक सा है, लेकिन अभी तक एफएफ में काम करता है।

 #frame { margin-top:200px; } 

मुझे आईपैड पर iframe में किसी भी प्रकार की जावास्क्रिप्ट "स्क्रोल टू" फ़ंक्शन का उपयोग करने में भी परेशानी थी आखिरकार समस्या का एक "पुराना" समाधान मिला, बस एक एंकर के लिए हैश

एक एजेक्स वापसी के बाद मेरी स्थिति में आईआरएफ़ के शीर्ष पर प्रदर्शित करने के लिए मेरे त्रुटि संदेशों को सेट किया गया था, लेकिन यदि उपयोगकर्ता को एक संक्षिप्त रूप से लंबे समय के रूप में लिखा गया होता है तो सबमिशन बाहर निकलती है और त्रुटि गुना के ऊपर दिखाई देती है। इसके अतिरिक्त, यह सोचते हुए कि उपयोगकर्ता ने शीर्ष स्तर पृष्ठ नीचे स्क्रॉल किया था 0,0 से दूर स्क्रॉल किया गया था और यह भी छुपा हुआ था।

मैंने कहा

 <a name="ptop"></a> 

मेरे iframe दस्तावेज़ के शीर्ष पर और

 <a name="atop"></a> 

मेरे शीर्ष स्तर के पृष्ठ के शीर्ष पर

फिर

  $(document).ready(function(){ $("form").bind("ajax:complete", function() { location.hash = "#"; top.location.hash = "#"; setTimeout('location.hash="#ptop"',150); setTimeout('top.location.hash="#atop"',350); } ) }); 

iframe में

आपको शीर्ष पृष्ठ से पहले iframe हैश करना होगा या केवल आइफ्रेम स्क्रॉल करेगा और शीर्ष छिपा रहेगा, लेकिन समय समाप्त होने के अंतराल के कारण यह थोड़ी सी "उछल" है, काम करता है। मुझे लगता है कि टैग्स को पूरे "स्क्रॉल टू" अंक की अनुमति होगी।

 var $iframe = document.getElementByID('myIfreme'); var childDocument = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; childDocument.documentElement.scrollTop = 0;