Firefox IFRAME will not print after first attempt

Z

zlarson

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.
 
Z

zlarson

ummmm...thanks?

Randy said:
(e-mail address removed) 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!!!')
}
 
R

Randy Webb

(e-mail address removed) 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!!!')
}
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,055
Latest member
SlimSparkKetoACVReview

Latest Threads

Top