2016-04-15 11 views
0

Ich muss eine URL zu Iframe dynamisch festlegen, aber wenn ich dies tun, ist der Iframe leer. HieriFrame mit dynamisch definierten URL ist leer

ist die Definition des iframe:

<html:iframe id="myFrame" width="700px" height="500px"></html:iframe> 

Und hier, wie ich versucht, die URL zu setzen:

var sRedirectUrl = "http://google.com"; //dynamically defined url 
var sIframeId = this.getView().byId(this.createId("myFrame")).getId(); 
$("#"+sIframeId).attr("src",sRedirectUrl); 

Here ist jsbin Beispiel. Ich habe auch versucht, Folgendes zu tun:

Definition:

<IconTabFilter id="iframe_container"> 
</IconTabFilter> 

URL Set: auch

var sRedirectUrl = "http://google.com"; //dynamically defined url 
this.getView().byId(this.createId("iframe_container")).addContent(
    new sap.ui.core.HTML({ 
    content: "<iframe scr=\""+sRedirectUrl+"\" width='700px' height='700px'></iframe>" 
    }) 
); 

Und es funktioniert nicht.

Was fehlt mir hier?

Vielen Dank.

UPDATE

Hard generierten Link in iframe Codierung funktioniert gut:

<html:iframe id="myiframe" src="https://generated_link_to_some_site.com?uniqueId"></html:iframe> 

Antwort

0

Der Grund, warum Iframe leer war, ist sehr einfach - ich habe versucht, das Element vor dem Rendern aufzurufen.

Ich brauchte 3 Tage, um das zu erkennen. Sei nicht wie ich.

1

Sie richtig machen, aber Google iFrame nicht erlaubt, versuchen mit test.com in Ihrem jsbin statt und es wird funktionieren: http://jsbin.com/vuqujoxupe/1/edit?html,output

+0

Google ist nur ein Beispiel. Ich muss in Iframe ein Kreditkarten-Zahlungsformular anzeigen, das dynamisch für jeden Benutzer von dem Kreditkarten-Zahlungsanbieter erstellt wird. Und wenn ich den generierten Link fest in einen Iframe code, funktioniert es. – keshet

+0

Seltsam, in meinem Jsbin funktioniert es mit Ihrem Code und der test.com-URL (also wird die URL dynamisch geladen), vielleicht verhindert die Seite, die Sie laden wollen, die Iframe-Integration (aus Sicherheitsgründen Phishing verhindern ...)? Aber in diesem Fall sollte es nicht funktionieren, wenn es hart codiert ist ... Ich habe es in Chrome versucht, es könnte relevant sein. –

+0

danke für Ihre Kommentare. In einer anderen App funktioniert der iFrame. Sonderbare Sache: der gleiche Code in einer anderen Anwendung macht 'console.log ($ (" # "+ sIframeId));' return '[iframe #__ xmlview0 - myiframe, kontext: dokument, selektor:" #__ xmlview0 - myiframe "] 'Element, während in der App ich mit der gleichen Linie kämpfe gibt' Q.fn.init {context: Dokument, Selektor: "#__ xmlview1 - myiframe"} ' – keshet