有的时候,会有这样一种情况,当我们需要收集一些用户的页面数据或者浏览器、屏幕分辨率等时,而且这些数据是尽可能的真实的,如果让用户填写一个表单来提交,这有很多人是不愿意去做的,数据亦缺乏准确性,解决方法是使用JS。使用Javascript脚本就能轻松的取得我们需要的数据,但怎么提交到服务器就成了一个问题,使用AJAX确实是一个优越而又可行的办法,可是,有的时候我们不用表现的如此优雅,直接使用JS动态构造一个GET请求,不由分说的提交到服务器,问题也就解决了,这过程中同样不需要用户的介入。
众所周知的一件事情是:使用script标签,能在页面中新开一个通信连接(当然你可以说iframe,object标签也可以),如果我们将script标签的src指向一个php文件,那么它就可以向服务器提交数据了。动态创建script标签的方法有两种,其实实质上是一样的。
这里先创建了一个js文件,供后面将动态创建的元素的src直接指向该文件s.js内容很简单:
- if(v !=''){
- alert(v);
- }
- else{
- alert('生活于三山两水间,无比惬意释然。');
- }
1、使用createElement动态创建script元素
- <script type="text/javascript">
- var v='';
- try{
- v='7777';
- var script_el=document.createElement("script");
- script_el.type="text/javascript";
- script_el.src="s.js?"+Math.random();
- h=document.getElementsByTagName("head")[0];
- h.appendChild(script_el);
- }
- catch(e){
- alert(e);
- }
- v='改哈子看看有嘛效果';
- </script>
2、使用document.write直接写入
- <script type="text/javascript">
- var v='其实这个例子举得非常失败,我。。。';
- document.write('<script type="text\/javascript" src="s.js?"'+Math.random()+'><\/script>');
- </script>
这两种都能轻松的动态创建一个script标签,来构造get请求,可以根据实际情况选择使用2种方法。
ajax中的跨域问题也就可以这么解决了,获取远程服务器数据,不再是难题,这种方法不好使用XML而已。
用createElement创建了script标签,使用appendChild方法进行附加。
作者: Sjolzy
--EOF--