diff options
Diffstat (limited to 'misc/drupal.js')
-rw-r--r-- | misc/drupal.js | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/misc/drupal.js b/misc/drupal.js index 4007817c4..f685490c3 100644 --- a/misc/drupal.js +++ b/misc/drupal.js @@ -108,9 +108,19 @@ function HTTPPost(uri, object, callbackFunction, callbackParameter) { */ function redirectFormButton(uri, button, handler) { // Insert the iframe - var div = document.createElement('div'); - div.innerHTML = '<iframe name="redirect-target" id="redirect-target" src="" style="width:0px;height:0px;border:0;"></iframe>'; - button.parentNode.appendChild(div); + var iframe = document.createElement('iframe'); + with (iframe) { + name = 'redirect-target'; + setAttribute('name', 'redirect-target'); + id = 'redirect-target'; + } + with (iframe.style) { + position = 'absolute'; + height = '1px'; + width = '1px'; + visibility = 'hidden'; + } + document.body.appendChild(iframe); // Trap the button button.onfocus = function() { @@ -119,10 +129,13 @@ function redirectFormButton(uri, button, handler) { var button = this; var action = button.form.action; var target = button.form.target; + // Redirect form submission this.form.action = uri; this.form.target = 'redirect-target'; + handler.onsubmit(); + // Set iframe handler for later window.iframeHandler = function (data) { // Restore form submission @@ -130,6 +143,8 @@ function redirectFormButton(uri, button, handler) { button.form.target = target; handler.oncomplete(data); } + + return true; } } button.onblur = function() { |