By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
445,645 Members | 1,047 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 445,645 IT Pros & Developers. It's quick & easy.

Firefox IFRAME will not print after first attempt

P: n/a
I have a website where a div's innerHTML is replaced with a string:
<input type="button" name="myButton" id="myButton"
onClick="printReport();"><IFRAME name="myFrame" id="myFrame"></IFRAME>
which holds a report. when the button is clicked it calls a function
to print the IFRAME:

function printReport()
{
if(document.getElementById('myFrame')){
if (navigator.appName.toUpperCase() == 'MICROSOFT
INTERNET
EXPLORER'){
document.myFrame.focus();
document.myFrame.print();
}else{
window.frames['myFrame'].print();
}
}

}
when the user gets to this report they can print it the first time, but

if they get another item and try to come back and print its report the
print button fails. i have put in alerts before and after the
window.frames['myFrame'].print(); and it hits both of them. keep in
mind this page is all using xmlHttpRequest and I have one big "load
div" where its innerHtml is constantly being replaced with remote html
strings. i first thought maybe i was ending up with multiple objects
with the same ID name both i watched the DOM with the Firefox tool and
that is not the case. The is only failing in Firefox. all is well in
IE. Thanks.

Aug 8 '06 #1
Share this Question
Share on Google+
2 Replies


P: n/a
zl*****@gmail.com said the following on 8/8/2006 2:32 PM:
I have a website where a div's innerHTML is replaced with a string:
<input type="button" name="myButton" id="myButton"
onClick="printReport();"><IFRAME name="myFrame" id="myFrame"></IFRAME>
which holds a report. when the button is clicked it calls a function
to print the IFRAME:

function printReport()
{
if(document.getElementById('myFrame')){
So, you test for getElementById and then proceed to assume it supports
window.frames as well?
if (navigator.appName.toUpperCase() == 'MICROSOFT
INTERNET
EXPLORER'){
Your script just went in the trash as it's utter junk after the use of
navigator and any of it's properties. And, for the record, the above
test does *not* identify IE.
document.myFrame.focus();
document.myFrame.print();
}else{
window.frames['myFrame'].print();
}
}

}
function printReport(){
window.frames['myFrame'].focus();
window.frames['myFrame'].print();
alert('Look Ma, only three lines and no navigator crap check!!!')
}

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Aug 8 '06 #2

P: n/a
ummmm...thanks?

Randy Webb wrote:
zl*****@gmail.com said the following on 8/8/2006 2:32 PM:
I have a website where a div's innerHTML is replaced with a string:
<input type="button" name="myButton" id="myButton"
onClick="printReport();"><IFRAME name="myFrame" id="myFrame"></IFRAME>
which holds a report. when the button is clicked it calls a function
to print the IFRAME:

function printReport()
{
if(document.getElementById('myFrame')){

So, you test for getElementById and then proceed to assume it supports
window.frames as well?
if (navigator.appName.toUpperCase() == 'MICROSOFT
INTERNET
EXPLORER'){

Your script just went in the trash as it's utter junk after the use of
navigator and any of it's properties. And, for the record, the above
test does *not* identify IE.
document.myFrame.focus();
document.myFrame.print();
}else{
window.frames['myFrame'].print();
}
}

}

function printReport(){
window.frames['myFrame'].focus();
window.frames['myFrame'].print();
alert('Look Ma, only three lines and no navigator crap check!!!')
}

--
Randy
comp.lang.javascript FAQ - http://jibbering.com/faq & newsgroup weekly
Javascript Best Practices - http://www.JavascriptToolbox.com/bestpractices/
Aug 8 '06 #3

This discussion thread is closed

Replies have been disabled for this discussion.