开发者

Modify an OnClick handler in JavaScript

开发者 https://www.devze.com 2023-02-20 10:12 出处:网络
I have a call to an onclick that is already created before. The button already has an onclick, but I need to add one more parameter before it does the submit.

I have a call to an onclick that is already created before. The button already has an onclick, but I need to add one more parameter before it does the submit.

Here's the View Source Code on the button:

<td valign='top' align='right' >
  <button name="Complete"  title="Complete"
   onClick="document.forms.Maker.action='http://example.com:8080/internal/Step.jsp?theId=19032&target=step20&type=Full';
   document.forms.Maker.submit();return false;">Complete</button>
</td>

This is a modification I made to add a confirmation after the user presses the button, and I also added so it shows what the onclick currently has:

function addEventConfirmation(element, type){ 
  var old = element['on' + type] || function() {};
  element['on' + type] = function ()开发者_运维技巧 { 

  if (confirm("Are you sure?")){
    old.call(this);  
    alert(old);
    } else { return false; }
  };
}

This is the alert from the before code:

function onclick()
{
document.forms.Maker.action='http://example.com:8080/internal/Step.jsp?theId=19032&
target=step20&type=Full';document.forms.Maker.submit();return false;
}

The result should show something like this:

function onclick()
{
document.forms.Maker.action='http://example.com:8080/internal/Step.jsp?theId=19032&
target=step20&type=Full&newParam=true';document.forms.Maker.submit();return false;
}


Try this: make the action value a variable.

var oldURI = "http://mysite.com:8080..."
var href = "oldURI" + "&newParam=true"

document.forms.Maker.action='href'


If this Html is your own code, do just like this :

document.getElementById('Complete').onclick = function()
{
    document.forms.Maker.action=
          'http://mysite.com:8080/internal/Step.jsp?theId=19032&
           target=step20&type=Full&newParam=true';
    document.forms.Maker.submit();
    return false;
}

else if you are trying to change this event handler from others website do this : put website in an iframe named 'myframe' and code like this :

document.getElementById('Complete').onclick = function()
{
    document.forms.Maker.action=
          'http://mysite.com:8080/internal/Step.jsp?theId=19032&
           target=step20&type=Full&newParam=true';
    document.forms.Maker.submit();
    return false;
}

but remember to turn cross-domain data source access restriction of your browser off !!!

for example in ie : Internet Options -> Security -> Custom Settings (Internet Zone) ->

Enable Access data sources across domains

0

精彩评论

暂无评论...
验证码 换一张
取 消