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?
Without knowing more about your page, I can't give you an ideal answer. There could easily be a better way, but based only on what you have shown, the only answer I see is to use a regular expression something like this:
sy = document.getElementById("Synonym");
id = sy.onchange.toString().match(/saveFieldData\(.+?,.+?,.+?,.+?,\s*(\d+)\)/)[1];
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();
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.