• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[FRAGE] jQuery iframe scrollTo

dbarthel

Lounge-Member
Hallo,

ich habe folgenden Code:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>TESt</title>
   
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
	<script type="text/javascript" src="../jquery.scrollTo.js"></script>
	<script type="text/javascript">
		jQuery(function( $ ){
			
			
			// This one is important, many browsers don't reset scroll on refreshes
			// Reset all scrollable panes to (0,0)
			// $('div.pane').scrollTo( 0 );
			// Reset the screen to (0,0)
			$.scrollTo( 0 );
			
			// TOC, shows how to scroll the whole window
			$('#toc a').click(function(){//$.scrollTo works EXACTLY the same way, but scrolls the whole screen
				$.scrollTo( this.hash, 1500, { easing:'elasout' });
				$(this.hash).find('span.message').text( this.title );
				return false;
			});
			
			// Target bindings
			var $paneTarget = $('#testframe');
			
			$('#relative-selector').click(function(){
				$paneTarget.stop().scrollTo( 'li:eq(14)', 800 );
			});
			$('#jquery-object').click(function(){
				var $target = $paneTarget.find('li:eq(14)');
				$paneTarget.stop().scrollTo( $target , 800 );
			});
			$('#dom-element').click(function(){
				var target = $paneTarget.find('ul').get(0).childNodes[20];
				$paneTarget.stop().scrollTo( target, 800 );
			});
			$('#absolute-number').click(function(){
				$paneTarget.stop().scrollTo( 150, 800 );
			});
			$('#absolute-number-hash').click(function(){
				$paneTarget.stop().scrollTo( { top:800,left:700} , 800 );
			});
			$('#absolute-position').click(function(){
				$paneTarget.stop().scrollTo( '520px', 800 );
			});
			$('#absolute-position-hash').click(function(){
				$paneTarget.stop().scrollTo( {top:'110px',left:'290px'}, 800 );
			});
			$('#relative-position').click(function(){
				$paneTarget.stop().scrollTo( '+=100', 500 );
			});
			$('#relative-position-hash').click(function(){				
				$paneTarget.stop().scrollTo( {top:'-=100px',left:'+=100'}, 500 );
			});
			
			$('#percentage-position').click(function(){				
				$paneTarget.stop().scrollTo( '50%', 800 );
			});
			
			// Options examples bindings, they will all scroll to the same place, with different options
			function reset_o(){//before each animation, reset to (0,0), skip this.
				$paneOptions.stop().stop();
				$paneOptions[0].scrollLeft = $paneOptions[0].scrollTop = 0;
			};
			var $paneOptions = $('#pane-options');
			
			$('#options-no').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000 );
			});
			$('#options-axis').click(function(){// only scroll horizontally
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { axis:'x' } );
			});
			$('#options-duration').click(function(){// it's the same as specifying it in the 2nd argument
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', { duration: 3000 } );
			});
			$('#options-easing').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 2500, { easing:'elasout' } );
			});
			$('#options-margin').click(function(){//scroll to the "outer" position of the element
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { margin:true } );
			});
			$('#options-offset').click(function(){//same as { top:-50, left:-50 }
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { offset:-50 } );
			});
			$('#options-offset-hash').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { offset:{ top:-5,left:-30 } });
			});
			$('#options-offset-function').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, {offset: function() { return {top:-30, left:-5}; }});
			});
			$('#options-over').click(function(){//same as { top:-50, left:-50 }
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { over:0.5 });
			});
			$('#options-over-hash').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1000, { over:{ top:0.2, left:-0.5 } });
			});
			$('#options-queue').click(function(){//in this case, having 'axis' as 'xy' or 'yx' matters.
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 2000, { queue:true });
			});
			$('#options-onAfter').click(function(){
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 2000, { 
					onAfter:function(){
						$('#options-message').text('Got there!');
					}
				});
			});
			$('#options-onAfterFirst').click(function(){//onAfterFirst exists only when queuing
				reset_o(); $paneOptions.scrollTo( 'li:eq(15)', 1600, { 
					queue:true,
					onAfterFirst:function(){
						$('#options-message').text('Got there horizontally!');
					},
					onAfter:function(){
						$('#options-message').text('Got there vertically!');
					}
				});
			});
		});
	</script>
</head>
<body>
    
<iframe src="http://forum.jswelt.de/" style="border:0px  none;" name="testframe" id="testframe" scrolling="no" frameborder="0" align="middle" marginheight="0px" marginwidth="0px" height="300" width="400"></iframe>


	<div id="target-examples" class="section part">
		<h3>Ways to specify the target <span id="target-message" class="">Click an option, to see it in action</span></h3>
		<ul class="links">
			<li><a title="$(...).scrollTo( 'li:eq(14)', 800 );" id="relative-selector" href="#">Relative selector</a></li>
			<li><a title="$(...).scrollTo( $('div li:eq(14)'), 800 );" id="jquery-object" href="#">jQuery object</a></li>
			<li><a title="$(...).scrollTo( $('ul').get(2).childNodes[20], 800 );" id="dom-element" href="#">DOM Element</a></li>
			<li><a title="$(...).scrollTo( 150, 800 );" id="absolute-number" href="#">Absolute number</a></li>
			<li><a title="$(...).scrollTo( { top:800, left:700}, 800 );" id="absolute-number-hash" href="#">Absolute number(hash)</a></li>
		</ul>
		<ul class="links">
			<li><a title="$(...).scrollTo( '520px', 800 );" id="absolute-position" href="#">Absolute position</a></li>
			<li><a title="$(...).scrollTo( {top:'110px', left:'290px'}, 800 );" id="absolute-position-hash" href="#">Absolute position(hash)</a></li>
			<li><a title="$(...).scrollTo( '+=100px', 800 );" id="relative-position" href="#">Relative position</a></li>
			<li><a title="$(...).scrollTo( {top:'-=100px', left:'+=100'}, 800 );" id="relative-position-hash" href="#">Relative position(hash)</a></li>
			<li><a title="$(...).scrollTo( '50%', 800 );" id="percentage-position" href="#">Percentage</a></li>
		</ul>
</div>		

</body>
</html>
der folgendes machen soll:


das iframe (lädt zu testzwecken hier mal das forum) soll an eine bestimmte Stelle gescrollt werden.
Zur Stuerung diehnen die Schlater unter dem iframe.


Das Problem, egal, welchen Schalter ich anklicke, das iframe wird NICHT gescrollt.

-----------------------------------
Habe dann den Teil

Code:
// Target bindings
var $paneTarget = $('#testframe');

wie folgt geändert:

Code:
// Target bindings
var $paneTarget = document.getElementById('testframe');

bzw.

Code:
// Target bindings
var $paneTarget = document.getElementById('testframe').contentWindow;

bzw.

Code:
// Target bindings
var $paneTarget = $('testframe').contentWindow;

jedoch jeweils ohne Erfolg!
Das Problem, ist weiterhin; egal, welchen Schalter ich anklicke, das iframe wird NICHT gescrollt.


Was mache ich falsch und wie müsste ich den Code wo abändern, damit das iframe gescrollt wird?


PS: das scrollTo-Script ist dieses hier: jQuery.ScrollTo
 
Zuletzt bearbeitet:
Hmm. Aber manuell könnte ich es doch scrollen.

Seit ihr sicher, das es da keine Lösung gibt?
 
Zuletzt bearbeitet:
Habe das Script jetzt nochmal mit einer Seite auf meinem Webspace getestet, als src=index.html

Leider lässt auch das sich nicht scrollen. Es muss also noch einen anderen Fehler geben.
Bin ratlos.
 
Ich habe den Code jetzt für ein ifame auf meinem webspace wie folgt angepasst:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>TESt</title>
   
	<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
	<script type="text/javascript" src="../jquery.scrollTo.js"></script>
	<script type="text/javascript">
		jQuery(function( $ ){
			
			
			// This one is important, many browsers don't reset scroll on refreshes
			// Reset all scrollable panes to (0,0)
			// $('div.pane').scrollTo( 0 );
			// Reset the screen to (0,0)
			$.scrollTo( 0 );
			
			// TOC, shows how to scroll the whole window
			$('#toc a').click(function(){//$.scrollTo works EXACTLY the same way, but scrolls the whole screen
				$.scrollTo( this.hash, 1500, { easing:'elasout' });
				$(this.hash).find('span.message').text( this.title );
				return false;
			});
			
			// Target bindings
			var $paneTarget = document.getElementById('testframe').contentWindow;
			
                        $('#absolute-position').click(function(){
				$paneTarget.scrollTo( '520px', 800 );
			});

			
	</script>
</head>
<body >
    
<!-- Test //-->
<iframe src="index.html" style="border:0px  none;" name="testframe" id="testframe" scrolling="no" frameborder="0" align="middle" marginheight="0px" marginwidth="0px" height="300" width="400"></iframe>
<!-- Test ENDE //-->	

<ul class="links">
<li><a title="$(...).scrollTo( '520px', 800 );" id="absolute-position" href="#">Absolute position</a></li>
</ul>

</body>
</html>

Allerdings scrollt auch dieses iframe nicht, wenn man auf den Link klickt.

Bitte, ich brauche Hilfe!

Warum funktioniert das nicht und wie müsste ich es ändern, das es funktioniert!
 
iframe scrolto

So, nach längerem probieren, habe ich das Problem etwas eingegänzt.

Folgenden einfachen Code vorausgesetzt:

Code:
<script type="text/javascript">
function getEleInIFrame() 
 {
  var theFrame = $('ifr'); alert('theFrame: ' + theFrame);
  var theWindow = theFrame.contentWindow; alert('theWindow: ' + theWindow);
  var theDoc = theFrame.contentWindow.document; /alert('theDoc: ' + theDoc);
 }
</script>

</head>

<body>
    
	 <iframe id="ifr" width="200" height="300" src="./picslide2.html"></iframe>

<input type="button"  id="" onclick="getEleInIFrame()" value="Test" />

der Inhalt der Varibalen "theWindow", also das ContentWindow, ist, je nach Zeitpunkt, wann jquery geladen wird, entweder undefined oder
Code:
theFrame.contentWindow
sorg dafür das die Funktion abgebrochen wird.

Kann mir bitte jemand weiterhelfen!?
 
AW: iframe scrolto

der Inhalt der Varibalen "theWindow", also das ContentWindow, ist, je nach Zeitpunkt, wann jquery geladen wird, entweder undefined oder
Code:
theFrame.contentWindow
sorg dafür das die Funktion abgebrochen wird.
theFrame.contentWindow ist immer undefined.
theFrame ist ein jquery objekt
 
AW: iframe scrolto


dann ruf mal diesen Code mit dem Firefox auf:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>test</title>
        <meta name="keywords" content="" />
        <meta name="description" content="" />
       
<!-- jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<!-- Prototype -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
<!-- script.aculo.us -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js"></script>

<!-- scrollto -->
<script type="text/javascript" src="../jquery.scrollTo.js"></script>


<script type="text/javascript">
function scroll(mode,x,y,argX,argY) 
 {
  var theFrame = $('ifr'); alert('theFrame: ' + theFrame);
  var theWindow = theFrame.contentWindow; alert('theWindow: ' + theWindow);
  var theDoc = theFrame.contentWindow.document; //alert('theDoc: ' + theDoc);
  
  var target = "";
  var paneTarget = theWindow; alert(paneTarget);
 

 theWindow.scrollTo( 200 , 300 );

 }
</script>



</head>

<body>
    
	 <iframe id="ifr" width="200" height="300" src="./picslide2.html"></iframe>





<input type="button"  id="" onclick="scroll('relativeselector','li:eq(14)',800,0,0);" value="relative-selector" /><br/>

dann wird "theFrame.contentWindow" mit Objekt Window wiedergegben und ist scrollbar.


Ruft man den selben Code in Crome oder IE auf, funktioniert es hingegen nicht.

--------------------------


mit deinem Vorschlag, von contents() komme ich nicht weiter.

Habe folgendes gebaut:

Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>contents demo</title>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<iframe src="picslide2.html" width="80%" height="600" id="frameDemo"></iframe>
 
<script>
var content = $( "#frameDemo" ).contents();
alert(content);
</script>
 
</body>
</html>

allerdings wird mir dort für content gar nichts ausgegeben, also kann ich ihn wohl auch nicht scrollen, oder?
 
Zuletzt bearbeitet:
AW: iframe scrolto

dann ruf mal diesen Code mit dem Firefox auf:
kommt ein fehler in zeile 24

Ruft man den selben Code in Crome oder IE auf, funktioniert es hingegen nicht.
kommt auch ein fehler in zeile 24

allerdings wird mir dort für content gar nichts ausgegeben, also kann ich ihn wohl auch nicht scrollen, oder?
bei mir kommt [Object] was ein jquery-objekt ist, welches das document des frames enthält
 
AW: iframe scrolto

kommt ein fehler in zeile 24

mit dem code:

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>test</title>
        <meta name="keywords" content="" />
        <meta name="description" content="" />
       
<!-- jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<!-- Prototype -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
<!-- script.aculo.us -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js"></script>

<!-- scrollto -->
<script type="text/javascript" src="../jquery.scrollTo.js"></script>


<script type="text/javascript">
function scroll(mode,x,y,argX,argY) 
 {
  var theFrame = $('ifr'); alert('theFrame: ' + theFrame);
  var theWindow = theFrame.contentWindow; alert('theWindow: ' + theWindow);
  var theDoc = theFrame.contentWindow.document; //alert('theDoc: ' + theDoc);
  
  var target = "";
  var paneTarget = theWindow; alert(paneTarget);
 

  switch(mode) 
  {
   case "jqueryobject":
       alert(paneTarget.find('+x+'));
       //target = paneTarget.find(x);
       break;
   case "domelement":
       alert('domelement');
       //target = paneTarget.find('+x+').get(argX).childNodes[argY];
       break;
   case "absolutenumberhash":
       target = "{ top:" + argX + ",left:" + argY + "}"
       break;
   case "absolutepositionhash":
       target = "{ top:" + argX + ",left:" + argY + "}"
       break;
   case "relativepositionhash":
       target = "{top:" + argX + ",left:" + argY + "}"
       break;
   default:
      target = x;
  }
  
 alert('x: ' + target + '\n y: ' + y);
 theWindow.scrollTo( target , y );

 //var theEle = theDoc.getElementById();
 //return theEle

 }
</script>



</head>

<body>
    
	 <iframe id="ifr" width="200" height="300" src="./picslide2.html"></iframe>





<input type="button"  id="" onclick="scroll('relativeselector','li:eq(14)',800,0,0);" value="relative-selector" /><br/>
	
<input type="button"  id="" onclick="scroll('jqueryobject','li:eq(14)',400,0,0);" value="jquery-object" /><br/>

<input type="button"  id="" onclick="scroll('domelement','ul',800,0,20);" value="dom-element" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumber',150,800,0,0);" value="absolute-number" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumberhash',0,800,800,700);" value="absolute-number-hash" /><br/>

<input type="button"  id="" onclick="scroll('absoluteposition','520px',800,0,0);" value="absolute-position" /><br/>

<input type="button"  id="" onclick="scroll('absolutepositionhash',0,800,'110px','290px');" value="absolute-position-hash" /><br/>

<input type="button"  id="" onclick="scroll('relativeposition','+=100',500,0,0);" value="relative-position" /><br/>
<input type="button"  id="" onclick="scroll('relativepositionhash',0,500,'-=100px','+=100');" value="relative-position-hash" /><br/>
<input type="button"  id="" onclick="scroll('percentageposition','50%',800,0,0);" value="percentage-position" /><br/>


</body>
</html>

?

bei mir kommt [Object] was ein jquery-objekt ist, welches das document des frames enthält

hast du den Code irgendwie geändert? Zeig mal bitte!
 
Zuletzt bearbeitet:
AW: iframe scrolto

nee, mit dem von oben, mit dem kommt der fehler aber natürlich auch

hast du den Code irgendwie geändert? Zeig mal bitte!
ich hatte jquery durch meine lokale kopie ersetzt, wenn ich deine versuche, geht es bei mir auch nicht, jquery wird nicht geladen.
das file existiert, wird aber als "application/x-javascript" ausgeliefert.
https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js geht
 
Ok, werde es damit mal versuchen. Aber im FF kommt mit dem zweiten Code eben kein Fehler, da Prototype.js das zugreifen auf den contentWindow macht.
 
Ok, werde es damit mal versuchen. Aber im FF kommt mit dem zweiten Code eben kein Fehler, da Prototype.js das zugreifen auf den contentWindow macht.
ach, jetzt sehe ich das erst, im letzten code hast du auch prototype drinn.
dann ist klar, warum das bei dir mal geht und mal nicht, je nachdem, welches script zuerst mit laden fertig ist, ist $ mal jquery und mal die prototype $ funktion.

- - - Aktualisiert - - -

dann ist klar, warum das bei dir mal geht und mal nicht, je nachdem, welches script zuerst mit laden fertig ist, ist $ mal jquery und mal die prototype $ funktion.
nee, stimmt auch nicht, sollte eigentlich immer prototype gewinnen, da synchron geladen wird

- - - Aktualisiert - - -

ach, jetzt sehe ich das erst, im letzten code hast du auch prototype drinn.
dann ist klar, warum das bei dir mal geht und mal nicht, je nachdem, welches script zuerst mit laden fertig ist, ist $ mal jquery und mal die prototype $ funktion.

nee, stimmt auch nicht, sollte eigentlich immer prototype gewinnen, da synchron geladen wird

bei mir ging es im letzten beispiel nicht, weil ich das frame dokument nicht hatte
 
Huhu hesst, bei deinem letzten Beitrag ist ja einiges doppelt.

Das Problem ist halt, jquery brauche ich für das scrollTo-Plugin und prototype braucht ich für .contentWindow

Wüsste jetzt nicht wie ich das anders lösen könnte, um eventuelle Lade-Probleme zu umgehen, weil:

Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>contents demo</title>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
</head>
<body>
 
<iframe src="picslide2.html" width="80%" height="600" id="frameDemo"></iframe>
 
<script>
var frame = $( "#frameDemo" ).contents();
alert(frame);
frame.scrollTo(300,200);
</script>
 
</body>
</html>

funktioniert auch nicht.

Zwar wird frame dort immer mit Object wiedergegeben, aber scrollen geht nicht.
 
Zuletzt bearbeitet:
Das Problem ist halt, jquery brauche ich für das scrollTo-Plugin und prototype braucht ich für .contentWindow
wozu brauchst du contentWindow?
an contentWindow kommst du auch ohne prototype ran, getElementById(...).contentWindow oder $(...)[0].contentWindow


Wüsste jetzt nicht wie ich das anders lösen könnte, um eventuelle Lade-Probleme zu umgehen, weil:
...
funktioniert auch nicht.

Zwar wird frame dort immer mit Object wiedergegeben, aber scrollen geht nicht.
weil du dein scrollTo-Plugin nicht eingebunden hast?
 
weil du dein scrollTo-Plugin nicht eingebunden hast?

eigentlich schon:

Code:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>contents demo</title>

<!-- jquery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<!-- scrollto -->
<script type="text/javascript" src="../jquery.scrollTo.js"></script>
</head>
<body>
 
<iframe src="picslide2.html" width="200" height="300" id="frameDemo"></iframe>
 
<br/>
<input type="button"  id="" onclick="scroll('relativeselector','li:eq(14)',800,0,0);" value="relative-selector" /><br/>
	
<input type="button"  id="" onclick="scroll('jqueryobject','li:eq(14)',400,0,0);" value="jquery-object" /><br/>

<input type="button"  id="" onclick="scroll('domelement','ul',800,0,20);" value="dom-element" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumber',150,800,0,0);" value="absolute-number" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumberhash',0,800,800,700);" value="absolute-number-hash" /><br/>

<input type="button"  id="" onclick="scroll('absoluteposition','520px',800,0,0);" value="absolute-position" /><br/>

<input type="button"  id="" onclick="scroll('absolutepositionhash',0,800,'110px','290px');" value="absolute-position-hash" /><br/>

<input type="button"  id="" onclick="scroll('relativeposition','+=100',500,0,0);" value="relative-position" /><br/>
<input type="button"  id="" onclick="scroll('relativepositionhash',0,500,'-=100px','+=100');" value="relative-position-hash" /><br/>
<input type="button"  id="" onclick="scroll('percentageposition','50%',800,0,0);" value="percentage-position" /><br/>

<script>
function scroll(mode,x,y,argX,argY) 
{

 switch(mode) 
  {
   case "relativeselector":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "jqueryobject":
       var str = "'" + x + "'"; 
       var target = paneTarget.find(str);         
       break;
   case "domelement":
       var str = "'" + x + "'"; 
       var target = paneTarget.find(str).get(argX).childNodes[argY];
       break;
   case "absolutenumberhash":
       target = "{ top:" + argX + ",left:" + argY + "}"
       break;
   case "absoluteposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "absolutepositionhash":
       target = "{ top:'" + argX + "',left:'" + argY + "'}"
       break;
   case "relativepositionhash":
       target = "{top:'" + argX + "',left:'" + argY + "'}"
       break;
   case "relativeposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "percentageposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   default:
      target = x;
  }

$('#frameDemo').contents().scrollTo(target , y);

}

</script>
 
</body>
</html>

das einzige, was geht, ist "absolutenumber", also scrollto(300,400), der Rest funzt nicht.

-------------

so rum :

Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <title>test</title>
        <meta name="keywords" content="" />
        <meta name="description" content="" />
       
<!-- jquery -->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js"></script>
<!-- Prototype -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/prototype/1.6.0.3/prototype.js"></script>
<!-- script.aculo.us -->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/scriptaculous/1.8.1/scriptaculous.js"></script>

<!-- scrollto -->
<script type="text/javascript" src="../jquery.scrollTo.js"></script>


<script type="text/javascript">
function scroll(mode,x,y,argX,argY) 
 {
  var theFrame = $('ifr'); //alert('theFrame: ' + theFrame);
  var theWindow = theFrame.contentWindow; //alert('theWindow: ' + theWindow);
  var theDoc = theFrame.contentWindow.document; //alert('theDoc: ' + theDoc);
  
  var target = "";
  var paneTarget = theWindow;  


  switch(mode) 
  {
   case "relativeselector":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "jqueryobject":
       var str = "'" + x + "'"; 
       var target = paneTarget.find(str);         
       break;
   case "domelement":
       var str = "'" + x + "'"; 
       var target = paneTarget.find(str).get(argX).childNodes[argY];
       break;
   case "absolutenumberhash":
       target = "{ top:" + argX + ",left:" + argY + "}"
       break;
   case "absoluteposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "absolutepositionhash":
       target = "{ top:'" + argX + "',left:'" + argY + "'}"
       break;
   case "relativepositionhash":
       target = "{top:'" + argX + "',left:'" + argY + "'}"
       break;
   case "relativeposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   case "percentageposition":
       var str = "'" + x + "'";
       var target = str;
       break;
   default:
      target = x;
  }
  
 //alert('x: ' + target + '\n y: ' + y);

 theWindow.scrollTo( target , y );

 }
</script>



</head>

<body>
    
	 <iframe id="ifr" width="200" height="300" src="./picslide2.html"></iframe>




<br/>
<input type="button"  id="" onclick="scroll('relativeselector','li:eq(14)',800,0,0);" value="relative-selector" /><br/>
	
<input type="button"  id="" onclick="scroll('jqueryobject','li:eq(14)',400,0,0);" value="jquery-object" /><br/>

<input type="button"  id="" onclick="scroll('domelement','ul',800,0,20);" value="dom-element" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumber',150,800,0,0);" value="absolute-number" /><br/>

<input type="button"  id="" onclick="scroll('absolutenumberhash',0,800,800,700);" value="absolute-number-hash" /><br/>

<input type="button"  id="" onclick="scroll('absoluteposition','520px',800,0,0);" value="absolute-position" /><br/>

<input type="button"  id="" onclick="scroll('absolutepositionhash',0,800,'110px','290px');" value="absolute-position-hash" /><br/>

<input type="button"  id="" onclick="scroll('relativeposition','+=100',500,0,0);" value="relative-position" /><br/>
<input type="button"  id="" onclick="scroll('relativepositionhash',0,500,'-=100px','+=100');" value="relative-position-hash" /><br/>
<input type="button"  id="" onclick="scroll('percentageposition','50%',800,0,0);" value="percentage-position" /><br/>


</body>
</html>

funtioniert fast alles, allerdings nur im Firefox. Chrome, IE und der Rest, wolln da nicht.

Könnte, wie von dir vermutet, daran liegen, das die Scripte unterschiedlich geladen werden, aber bin nicht sicher; wüsste keinen vernünftigen Grund, warum der FF da anders arbeiten sollte, als der Rest.
 
Zuletzt bearbeitet:
eigentlich schon:
das ist aber wieder ein anderes, als in deinem letzten post
auch weiss ich nicht, welches jqueryplugin du verwendest

so rum :
...

funtioniert fast alles, allerdings nur im Firefox. Chrome, IE und der Rest, wolln da nicht.
das ist aber wieder jquery und prototype gemischt, das kann nicht gut gehen.
das kann man zwar abmildern, ist aber immer noch keine gute idee, da plugins darauf meist keine rücksicht nehmen, die dürften kein $ mehr verwenden, machen aber die meisten

Könnte, wie von dir vermutet, daran liegen, das die Scripte unterschiedlich geladen werden
nein, das war nicht zuende gedacht, du lädst die scripte ja synchron

aber bin nicht sicher; wüsste keinen vernünftigen Grund, warum der FF da anders arbeiten sollte, als der Rest.
das kann man rausfinden, ändert aber nichts an der sache, dass du jquery und prototype nicht mixen kannst
 
Zurück
Oben