下面的代码使用saveFieldData()
保存在textarea中输入的数据。我想使用删除按钮作为书签,这将使该字段为空并将其保存在服务器中。
<textarea rows="4" cols="49" name="Synonym" id="Synonym" onchange="saveFieldData(85261, this, 'docProductInfo', 'Synonym', 84796);"></textarea>
所以这是我的书签
javascript:(function(){var sy=document.getElementById("Synonym");sy.value="";saveFieldData(85261,sy, 'docProductInfo', 'Synonym', 84796);})();
它完美地删除了数据,但问题是每当页面重新加载时它会将一些新值作为函数参数分配,因此我的代码无法正常工作。例如在页面重新加载后,函数参数会发生这样的变化
saveFieldData(85261, this, 'docProductInfo', 'Synonym', 84789);
基本上是最后一个参数更改。那么,有没有办法让我的bookmarklet自动检测到该参数并成功删除该字段?
答案 0 :(得分:0)
在不了解您的网页的情况下,我无法给您一个理想的答案。可能很容易有更好的方法,但仅基于你所展示的内容,我看到的唯一答案是使用这样的正则表达式:
sy = document.getElementById("Synonym");
id = sy.onchange.toString().match(/saveFieldData\(.+?,.+?,.+?,.+?,\s*(\d+)\)/)[1];
答案 1 :(得分:0)
如果您只需要调用onchange
处理程序,则无需知道它的参数:
var sy=document.getElementById("Synonym");
var fn=sy.onchange;
sy.value="";
fn.call(sy);
或者更简单,因为onchange处理程序不使用其中的任何this
:
fn();