diff --git a/misc/drupal.js b/misc/drupal.js index d9e70654958bb2acae7da7e81be2eed04322c2b4..e64d3bc6010c0efe3df83a08cd1beab7afc28d7d 100644 --- a/misc/drupal.js +++ b/misc/drupal.js @@ -111,7 +111,11 @@ function HTTPPost(uri, callbackFunction, callbackParameter, object) { */ function redirectFormButton(uri, button, handler) { // Insert the iframe - var iframe = document.createElement('iframe'); + // Note: some browsers require the literal name/id attributes on the tag, + // some want them set through JS. We do both. + var div = document.createElement('div'); + div.innerHTML = '<iframe name="redirect-target" id="redirect-target" class="redirect"></iframe>'; + var iframe = div.firstChild; with (iframe) { name = 'redirect-target'; setAttribute('name', 'redirect-target'); @@ -126,7 +130,7 @@ function redirectFormButton(uri, button, handler) { document.body.appendChild(iframe); // Trap the button - button.onfocus = function() { + button.onmouseover = button.onfocus = function() { button.onclick = function() { // Prepare variables for use in anonymous function. var button = this; @@ -150,7 +154,7 @@ function redirectFormButton(uri, button, handler) { return true; } } - button.onblur = function() { + button.onmouseout = button.onblur = function() { button.onclick = null; } }