Vad är korrekt sätt att ange ett iframe objekt?
targetFrame = window.frames['web2lead']
if(targetFrame == undefined){
...
targetFrame returnerar [object] i internet explorer 8, vilket fungerar med resten av mitt skript.
targetFrame returnerar "undefined" i Firefox trots att en iframe namngedd "web2lead" existerar.
Det jag vill åstakomma är att köra en javascript funktion om en viss iframe existerar, men samtidigt inte generera ett fel om iframen inte fungerar.
Noterade precis att <iframe taggen inte hade ett namn fält utan bara id="web2lead"
Har inte möjlighet att påverka iframe taggen då den genereras från ett annat system. Hur refererar man till objectet med id taggen istället... hmmm...
document.getElementById()?
Hej Nitro. Bra att du är här :)
Jag var inne på det också men det fungerar inte helt. Obs jag är helt självlärd på javascript så jag kan sakna grundkunskap.
document.getElementById("web2lead") ger i IE:
DEBUG: targetFrame = [object]
och i Firefox:
DEBUG: targetFrame = [object HTMLIFrameElement]
Hela min funktion ser ut så här:
function funLoadIframeWithQueryStingFromThisPage(){
// THE NAME OF THE IFRAME WE WANT TO CHANGE URL ON...
targetFrame = document.getElementById("web2lead")
//targetFrame = window.frames['web2lead']
alert("DEBUG: targetFrame = " +targetFrame)
// TEST IF THE TARGET FRAME EXIST...
if(targetFrame == undefined){
//alert("DEBUG: iFrame named 'web2lead' is not found on landing page...")
}else{
// GET THE URL OF THIS PAGE...
varThisPageUrl = window.location.href
// CUT OUT THE QUERY STRING IF IT EXISTS...
varQueryString = ""
if(varThisPageUrl.indexOf('?') != -1){
varQueryString = varThisPageUrl.substring(varThisPageUrl.indexOf('?'), varThisPageUrl.length)
//alert("DEBUG Querystring = " +varQueryString )
}else{
varQueryString = "?"
}
// GET ANY RERERER INFORMATION...
varRefererUrl = document.referrer
// ATTACH THE QUERYSTRING TO THE IFRAME URL...
if(varQueryString.length > 1){
varLoadThisUrlInIframe = "/thermography/greatoffer/index.asp" +varQueryString +"&rRefererUrl=" +varRefererUrl
//alert("DEBUG: varLoadThisUrlInIframe = " +varLoadThisUrlInIframe)
}else{
varLoadThisUrlInIframe = "/thermography/greatoffer/iframeIncorrectUrl.html"
}
// RELOAD THE IFRAME...
//alert(".")
targetFrame.location.href = varLoadThisUrlInIframe
}
}
Använder jag getElementById så smäller targetFrame.location.href
:/
Peter SMedlem sedan dec. 20025 483 inlägg targetFrame.src = varLoadThisUrlInIframe
Att ie säger [object] medan FF anger vilken typ av objekt är helt normalt. Det är bara olika beteende hos läsarna.
Peter S' förslag kan funka. Annars kan du pröva att sätta name på objektet d får ut med document.getE,ementById:
document.getElementById("web2lead").name='web2lead';
targetFrame = window.frames['web2lead']
Eller kanske
document.getElementById("web2lead").name='web2lead';
...
window.open(varLoadThisUrlInIframe, 'web2lead');
Tack som fan. Fungerar bra. :)