在这种情况下,让我们以Google为例:
代码是JScript .NET,它基本上是Javascript的.NET版本。无论语言如何,任何具有附加技能类型的人都可以回答我的问题。
此代码用于Fiddler
(它是一个中间人代理)
if (oSession.uriContains("&q=")) // oSession is a Fiddler object session // uriContains() function, checks for case-insensitive string from the URI
{
var str = oSession.fullUrl;
var sAppend = "test1+test2+test3";
if (!oSession.uriContains(sAppend))
{
oSession.fullUrl = str.replace( "&q=","&q="+sAppend);
}
}
对于那些感到困惑的人,它说,如果URI中存在&q=
,请将&q=
替换/追加&q=test1+test2+test3
问题:当它在网址中看到test1+test2+test3
时,会立即附加&q=
。
基本上,我如何让它等到我点击提交/搜索按钮
谢谢。
答案 0 :(得分:2)
我假设:
隔离那些源于谷歌上按下搜索按钮的请求并不简单,但我想出了一个似乎有效的黑客攻击。基本上,oq
(原始查询)获取参数仅在用户明确点击按钮/输入键时添加,因此我们测试其存在以识别此类请求。
在Fiddler OnBeforeRequest
课程中的Handlers
方法中(您已经在放置代码的地方),我们会:
q
参数
oq
参数(原始查询)
if(oSession.HostnameIs('www.google.com') && oSession.uriContains("&q=")){
FiddlerApplication.Log.LogString('query submitted to google.com...');
oSession['ui-backcolor'] = 'pink'; //highlight this request
//test for original query
if(oSession.uriContains('&oq=')){
FiddlerApplication.Log.LogString('SUBMIT BUTTON OR ENTER CLICKED (probably)');
oSession['ui-backcolor'] = '#369369'; //highlight in Light Forest Green
//whatever sort of request manipulation you want to do here...
}
}
q
值,即q=Hello
将变为q=test1+test2+test3Hello
。如果您想要替换它,您需要更多正则表达式。答案 1 :(得分:1)
在Javascript中,您可以将操作绑定到事件。在您的情况下,事件是表单的submit
例如:
function addEventsToHTML(){
var form1 = document.getElementById('form1');
form1.onsubmit = submitHandler;
function submitHandler(){
alert("You just submit: "+this.email.value);
}
}
如果你想在点击时绑定它,你可以这样做:
object.onclick=function(){myScript};
或者
object.addEventListener("click", myScript);
注意:Internet Explorer 8及更早版本不支持addEventListener()方法。