有这样一个网站:http://addruby.com/text.html
功能是日文翻译,想利用这个网站自己写代码,利用它的服务做成一个小的翻译软件。
但是打开代码一看,是ajax的,在网上查了一下,直接把其它网站的ajax服务加到自己的代码里面还是挺麻烦的,
应为ajax设计成了不能跨域名访问。
AJAX的原理我早就大概知道一点,是BS结构的异步处理,
简单理解就是网页上的多线程,一个线程维护原来的网页,使之能够显示,而不刷新,
一个线程用于AJAX通信,通信结束后改写原来网页的一部分内容。
两个线程互不干扰,AJAX通信的时候用户仍然可以观看,甚至操作原来网页。
请教了一下对AJAX比较熟的人,原来不用AJAX,直接发送post或者get请求也可以,
上述网站的form代码如下:
<form name="myform" id="myform"> | |
<textarea name="txt" cols="85" rows="8" maxlength="5000" id="txt" onblur="txtblur();" onfocus="txtfocus();">いつもAddRuby[アドルビ]をご利用頂きありがとうございます。</textarea><br><br> | |
<select name="target"> | |
<option value="all">全文</option> | |
<option value="han">漢字のみ</option> | |
</select> に | |
<select name="furigana"> | |
<option value="hiragana">ひらがな</option> | |
<option value="katakana">カタカナ</option> | |
<option value="roman_yomi">ローマ字(読み)</option> | |
<option value="roman_hastu">ローマ字(発音)</option> | |
</select> の | |
<input type="button" name="btn" value=" ルビ(ふりがな)を振る " id="btn" onclick="exec();return false;"> | |
<input type="hidden" name="MODE" value="txt" id="mode"> | |
<input type="hidden" name="EXEC" value="1"> | |
</form> |
可以看到form自己没有提交地址,而是提交到了一个javascript函数,
function exec() { if ($('mode').value == "txt") { if ($('txt').value == "") { alert("入力してください。"); $('txt').focus(); return false; } if (!check_null($('txt').value)) { alert("スペース、改行だけの入力はできません。"); $('txt').focus(); return false; } var txt = del_lineFeed($('txt').value); var max = $('txt').maxlength; if (txt.length > max) { alert(max + "文字以内で入力ください。"); $('txt').focus(); return false; } } new Ajax.Request( '/addruby.cgi',{ method : 'post',parameters : Form.serialize('myform'),onLoading: function() { $('res').innerHTML="<img src='/img/loading.gif' alt='Please wait.....'><br><br>Please wait....."; $('btn').disabled=true; },onComplete: function(request) { $('res').innerHTML=request.responseText; $('btn').disabled=false; } }); }
那么取消异步功能,直接用form提交请求就可以了。
代码如下,参照AJAX的提交方式,这里使用了post方式,其实测试了一下,用get方式也可以,好神奇^^
<form action="
http://addruby.com/addruby.cgi "name="myform" id="myform" method="post">
<textarea name="txt" cols="85" rows="8" maxlength="5000" id="txt" onblur="txtblur();" onfocus="txtfocus();">
いつもAddRuby[アドルビ]
をご利用頂きありがとうございます。</textarea><
br><br>
<select name="target">
<option value="all">全文</option>
<option value="han">漢字のみ</option>
</select> に
<select name="furigana">
<option value="hiragana">ひらがな</option>
<option value="katakana">カタカナ</option>
<option value="roman_yomi">ローマ字(読み)</
option>
<option value="roman_hastu">ローマ字(発音)</
option>
</select> の
<input type="button" name="btn" value=" ルビ(ふりがな)を振る " id="btn" onclick="exec();return false;">
<input type="hidden" name="MODE" value="txt" id="mode">
<input type="hidden" name="EXEC" value="1">
<input type="submit" name="submit" value="Submit" />
</form>