Search code examples
javascriptjqueryhtmlbookmarklet

How to get function parameter values from an HTML Page using bookmarklet?


The code below saves data entered in textarea using saveFieldData().I want to use a Delete Button as a bookmarklet which will make this field blank and save the same in the server.

<textarea rows="4" cols="49" name="Synonym" id="Synonym" onchange="saveFieldData(85261, this, 'docProductInfo', 'Synonym', 84796);"></textarea>

So here is my bookmarklet

javascript:(function(){var sy=document.getElementById("Synonym");sy.value="";saveFieldData(85261,sy, 'docProductInfo', 'Synonym', 84796);})();

It deletes the data perfectly but the problem is whenever the page reloads it assigns some new values as function parameters as a result my code fails to work.For example after page reloads the function parameter changes like this

saveFieldData(85261, this, 'docProductInfo', 'Synonym', 84789);

basically the last parameter changes.So,Is there any way so that my bookmarklet will detect that parameter automatically and delete that field successfully?


Solution

  • If you just need to invoke the onchange handler you don't need to know it's parameters:

    var sy=document.getElementById("Synonym");
    var fn=sy.onchange;
    sy.value="";
    fn.call(sy);
    

    Or more simply, since the onchange handler doesn't use any this within it:

    fn();