javascript - Form with target="_blank" behavior changed in IE 9 and 10 -
i have app uses next code open dynamically generated study in new tab. (i've mocked out parameters sake of demo.)
function gblpdfwdw(pdf) { var formdiv = document.createelement("div"); formdiv.innerhtml = "<form method=post action='" + pdf + "' target='_blank'><input type=hidden id=test name=test value='test'></form>"; var form = formdiv.firstchild; document.body.appendchild(form); form.submit(); form.parentnode.removechild(form); } the pdf parameter url script generates pdf. reason form manipulation parameters posted script rather get parameters.
in ie 8 , below, chrome, firefox, etc., 1 of 2 things:
if browser can read pdfs (via built-in functionality or plugin), open new tab report, desired behavior. if browser can't read pdfs, open new tab, close it, , download file.it seems #2 has changed in ie 9 , above. open new tab, yields blank screen until user goes back original tab, clicks "open" or "save", , pdf downloads expected. it's confusing interface.
i suppose 1 way work around generate temporary pdf file, , window.open() it. there other ways tweak behavior of functionality? or there recommended practice i've not run across?
(note: isn't @ pdf specific; file browser may download instead of display natively seems problematic.)
edit: looks i'm farther behind curve realized. appears occurs in ie9, , i'd never noticed never tried without pdf plugin installed or file type.
interestingly, above code works i'd expect if remove input field form. i'm not sure why browser treat differently. of course, in case, need input post info script.
edit 2: silly mistake. input self-closing. fixed.
edit 3: here screenshots improve explain issue. i'm using this jsbin testing. have onclick event trigger javascript function above.
the process starts on first tab.
then, 1 time click text, new tab opens. it's blank!
and turns out original (now hidden) tab has message asking whether open or save file.
clicking "open" or "save" open file fine. process terribly confusing, , inconsistent other browsers.
edit 3: 1 step forward, 1 back. if utilize window.open() create new window, , programmatically set form.target name of window, can @ to the lowest degree open/save message in opened tab…though i'd much prefer close tab other browsers. worse, technique, new tab no longer closes. perhaps there's technique?
one off-shot solution observe ie , pdf plugin avaliability , set 'target' attribute '_self' in (>ie9 && !plugin) situation. i've found plugindetect claims adobereader plugin detection.
all in ugly , unreliable method should give result in cases.
javascript forms tabs internet-explorer-9 internet-explorer-10
No comments:
Post a Comment