Js - 动态创建Iframe{兼容IE/Firefox/...}

这个主要是在做Ajax无刷新上传的时候用了。

其实也可以直接写Iframe在Html上,但考虑到会不简洁,怕误删等其他操作造成错误,就用这个动态创建的。

狗狗了一下找到下面一段代码:

var objBody = document.getElementsByTagName("body").item(0);
var iframe = document.createElement('iframe');
iframe.id = 'fileUploaderEmptyHole';
iframe.name = 'fileUploaderEmptyHole';
iframe.width = 0;
iframe.height = 0;
iframe.marginHeight = 0;
iframe.marginWidth = 0;
objBody.insertBefore(iframe, objBody.firstChild);

这段代码在Firefox运行正常,但在Ie下不行。会在新弹出的窗口中打开。

调试了一下,发现在IE里是iframe.name = 'fileUploaderEmptyHole';
这行代码无效。

再次更改代码,使用

iframe = document.createElement('<iframe name="fileUploaderEmptyHole">');

这样的形式。但是这样子在非IE的浏览器里会抛出异常。

所以。。 那么。。  捕获异常判断浏览器

最后再处理的兼容Firefox/IE等浏览器的动态创建一个Iframe的Js代码
如下:

var iframe;
try {
  iframe = document.createElement('<iframe name="fileUploaderEmptyHole">');
} catch (ex) {
  iframe = document.createElement('iframe');
}
iframe.id = 'fileUploaderEmptyHole';
iframe.name = 'fileUploaderEmptyHole';
iframe.width = 0;
iframe.height = 0;
iframe.marginHeight = 0;
iframe.marginWidth = 0;

备忘

GROUP_CONCAT :SELECT GROUP_CONCAT( access.amid ) AS mid FROM wms.access WHERE access.agid=0

以下代码可以取某个范围内的列名,下例中是取5到10列的列名。
select * from INFORMATION_SCHEMA.COLUMNS where table_name='HX' and ordinal_position between 5 and 10

js 数字
<input name="end_price" id="end_price" type="text" size="5" onkeyup="value=value.replace(/[^\d]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" >


SELECT GROUP_CONCAT(mname) from webinfo.mod


批量替换
UPDATE article(表) SET
content = replace(content, ’解决’, ’解放’)
WHERE ID<5000;

查找字段的字符
SELECT a.products_name FROM nikefed.products_description a WHERE a.products_name like '%#%'

大写变小写
strtolower

<fieldset>
    <legend><span>fieldset</span></legend>
<form></form>
</fieldset>

图片与文字水平对齐
图片加:align="absmiddle"

图片hack:margin-bottom:-3px;

<div id="output" style="border:1px solid gray;width:95%;height:400;overflow-y:scroll"></div>


CREATE VIEW qd
AS
(SELECT a.aid, b.bid,b.bfield,c.cvalue
    FROM (a, b ) 
    LEFT JOIN c 
    ON (a.aid = c.aid AND b.bid = c.bid) 
    ORDER BY a.aid ASC, b.bid ASC
);
SELECT a.* FROM qd a
LEFT JOIN
(
SELECT a.aid,a.ma,COUNT(b.aid) AS dd FROM (SELECT aid,MAX(cvalue) AS ma FROM qd GROUP BY aid) a
LEFT JOIN (SELECT aid,MAX(cvalue) AS ma FROM qd GROUP BY aid) b
ON a.ma>=b.ma
GROUP BY a.aid,a.ma
ORDER BY COUNT(b.aid)) d
ON a.aid=d.aid
ORDER BY d.dd;


301
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://www.nkfed.com/");


Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 6144 bytes)  修改php.ini 的memory_limit的值更大点。

桌面url快捷方式  命名为**.url
[DEFAULT]
BASEURL=http://i.hudong.com/home.do
[InternetShortcut]
URL=http://i.hudong.com/home.do
IDList=
[{000214A0-0000-0000-C000-000000000046}]
Prop3=19,2


js操作换行
<script type="text/javascript">
// <![CDATA[
function toBreakWord(intLen){
    var obj=document.getElementsByName("ff");
    for(var i=0;i<obj.length;i++){
        var strContent=obj[i].innerHTML; 
        var strTemp="";
        while(strContent.length>intLen){
        strTemp+=strContent.substr(0,intLen)+"&#10;"; 
        strContent=strContent.substr(intLen,strContent.length); 
        }
        strTemp+="&#10;"+strContent;
        obj[i].innerHTML=strTemp;
    }
}
if(document.getElementById  &&  !document.all)  toBreakWord(37);
// ]]>
</script>


错误调试
//使用html格式的错误输出内容,比较重要,否则在页面上就乱了
ini_set('html_errors', 1);
//打开所有的错误级别
ini_set('error_reporting', E_ALL);
//显示错误
ini_set('display_errors', 1);
//显示启动错误 推荐在各个业务的入php文件中设置,而不要在php.ini中设置。
ini_set('display_startup_errors', 1);


取分类的头几条记录
Select   *   From   表   A
Where   (Select   Count(*)   From   表   Where   type   =   A.type   And   value   <   A.value)   <   2
Order   By   type,   value



    function get_Curr_Domain() {
        $HTTP_HOST = PMA_getenv('HTTP_HOST');echo $HTTP_HOST.'<br>';
        $HTTP_HOST = strrev($HTTP_HOST);echo $HTTP_HOST.'<br>';
        $HTTP_HOST = explode('.',$HTTP_HOST,3);dump($HTTP_HOST);
        $curr_Domain = htmlspecialchars(strrev($HTTP_HOST[0].'.'.$HTTP_HOST[1]));
        return  $curr_Domain;
    }


linux打包
 tar -cvfz /var/www/html/gamestore8-6.tar.gz /var/www/html/gamestore.com

zip –q –r html.zip html

  $ cp - i exam1.c /usr/wang/shiyan1.c
  该命令将文件exam1.c拷贝到/usr/wang 这个目录下,并改名为 shiyan1.c。若不希望重新命名,可以使用下面的命令:
  $ cp exam1.c /usr/ wang/
  $ cp - r /usr/xu/ /usr/liu/ 将/usr/xu目录中的所有文件及其子目录拷贝到目录/usr/liu中

select组
<select>
    <optgroup label="<5" >
        <option>0</option>
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </optgroup>
    <optgroup label=">4" >
        <option>5</option>
        <option>6</option>
        <option>7</option>
        <option>8</option>
        <option>9</option>
    </optgroup>
</select>

chmod g+ order_doc

启动apache
service httpd start
启动FTP
service vsftpd restart
启动mysql
service mysqld restart

手型
style="cursor: pointer" mce_style="cursor: pointer"

MSN:   <a href="msnim:chat?contact=sales_support@hotmail.com">sales_support@hotmail.com</a>
EMAIL: <a href="mailto:support@tiffanyouth.co.uk">support@tiffanyouth.co.uk</a>

//编码转换:         内容    to     from
mb_convert_encoding($data,'utf-8','gbk')

$  USD   美元
£ GBP   英镑
€  EUR   欧元

监听回车
<script language="javascript">
 function keypress(e)
  {
    var currKey=0,e=e||event;
      if(e.keyCode==13)document.myform.submit();
  }
 document.onkeypress=keypress;
  </script>

  addslashes<==>stripcslashes

jquery查找和替换
t:要查找替换的字符串 
$.each(t, function(k, v) {
    /^[A-Za-z0-9]$/.exec(v) || (t=t.replace(t[k],'-'));
});

select下拉框的第二个元素为当前选中值
$('#select_id')[0].selectedIndex = 1;

radio单选组的第二个元素为当前选中值
$('input[@name=items]').get(1).checked = true;

获取select被选中项的文本
var item = $("#gp_pid option:selected").text();
var item = $("select[@name=items] option[@selected]").text();

$("#sel").attr("value",'-sel3');//设置value=-sel3的项目为当前选中项

单选组radio: $("input[@type=radio]").attr("checked",'2');//设置value=2的项目为当前选中项

$("#select_id").attr("value",'test');//设置value=test的项目为当前选中项

js获取时间
new Date().getTime()
Math.random();

//随机输出
if(!flag){
    var words=[
        {image:0,head:"msg1",body:"cnt1"},
        {image:1,head:"msg2",body:"cnt2"},
        {image:2,head:"msg3",body:"cnt3"},
        {image:"mini",head:"",body:""}];
    var rand = new Date().getTime() % 3;
    var content =
    '<div>'.words[rand].image+'.jpg'+
        '<h2>'+words[rand].head+'</h2>'+
        '<p>'+words[rand].body+'</p>'+
    '</div>';
    document.write(content);
}

//js加载块内容的方式
<div class="login_inner">
<script type="text/javascript">
    document.write('<iframe id="login_iframe" style="height:300px;width:366px;" class="loginIframe" frameborder="no" scrolling="no" src="#"></iframe>');
</script>
</div>

js设置样式
if ( is_IE ){
document.getElementById(controlID).className = controlCssClass ;
}
else if ( is_NN ){
document.getElementById(controlID).setAttribute("class", controlCssClass) ;
}

jquery 验证email
 var search_str = /^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/;
 var email_val = $("#Email").val();
 if(!search_str.test(email_val)){      
 alert("please input right email !");
 $('#Email').focus();
 return false;
 }

使用jquery插件测试url链接是否有效及js ping url

jquery的ping插件://要用的需要明白代码及自己改些地方

(function($) {
    $.fn.ping = function(options) {
        var opts = $.extend({}, $.fn.ping.defaults, options);
        var stime = new Date().getTime();
        return this.each(function() {
            var ping, requestTime, responseTime ;
            var target = $(this);
            function ping(){
                $.ajax({url: opts.getUrl(target.html())+'/'+ Math.random() + '.html',  //设置一个空的ajax请求
                    type: opts.type,
                    dataType: 'html',
                    timeout: opts.timeout,
                    beforeSend : function() {
                        requestTime = new Date().getTime();
                    },
                    complete : function() {
                        responseTime = new Date().getTime();
                        ping = Math.abs(requestTime - responseTime);
                        $('#'+target.html().replace('.','_')).text(ping + opts.unit);
                        //target.text(ping + opts.unit);
                    }
                });
            }
            var etime = new Date().getTime();
            if(Math.abs(stime - etime)<opts.timeout){
                ping();  //无论如何都要执行一次
                opts.interval != 0 && setInterval(ping,opts.interval * 1000);
            }
        });
    };
    $.fn.ping.defaults = {
        type: 'GET',
        timeout: 10000,
        interval: 3,
        unit: 'ms',
        isUrl:function(url){    //验证url是否有效
           var strReg = "^((https|http)?://)?"
            + "(([0-9]{1,3}.){3}[0-9]{1,3}" //
            + "|" //
            + "([0-9a-z_!~*'()-]+.)*" //
            + "([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." //
            + "[a-z]{2,6})" //
            + "(:[0-9]{1,4})?" //
            + "((/?)|" //
            + "(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$";
            var re=new RegExp(strReg);
            return re.test(url);
           },
        getUrl:function(url){    //保证url带http://
            var strReg="^((https|http)?://){1}"
            var re=new RegExp(strReg);
            return re.test(url)?url:"http://"+url;
        }
    };
})(jQuery);

 

js ping url:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>HTTP Ping</title>
<style>
html{height: 100%;overflow: hidden;}
body{background: #000;color: #C0C0C0;font-weight: bold;font-size: 14px;font-family: Lucida Console;height: 100%;margin: 0 0 0 5px;}
#divInput{height: 10%;}
#divContent{height: 90%;overflow: auto;}
#txtTimeout{width: 40px;}
button{    margin-left: 10px;}
</style>
</head>
<body>
<div id="divInput">
    <span>URL:</span>
    <input id="txtURL" type="text" />
    <span>Timeout:</span>
    <input id="txtTimeout" type="text" value="2000" />
    <input id="btnSwitch" type="button" value="Start" onclick="handleBtnClick()" />
    <hr/>
</div>
<div id="divContent"></div>
<script>
var intStartTime;
var objIMG = new Image();
objIMG.onload =
objIMG.onerror =
function(){
    /*
     * 有回应,取消超时计时
     */
    clearTimeout(intTimerID);
    if(!bolIsRunning || bolIsTimeout)
        return;
    var delay = new Date() - intStartTime;
    println("Reply from " +
            strURL +
            " time" +
            ((delay<1)?("<1"):("="+delay)) +
            "ms");
    arrDelays.push(delay);
    /*
     * 每次请求间隔限制在1秒以上
     */
    setTimeout(ping, delay<1000?(1000-delay):1000);
}
function ping(){
    /*
     * 发送请求
     */
    intStartTime = +new Date();
    intSent++;
    objIMG.src = strURL + "/" + intStartTime;
    bolIsTimeout = false;
    /*
     * 超时计时
     */
    intTimerID = setTimeout(timeout, intTimeout);
}
function timeout(){
    if(!bolIsRunning)
        return;
    bolIsTimeout = true;
    objIMG.src = "X:\\";
    println("Request timed out.");
    ping();
}
</script>
<script>
var $ = function(v){return document.getElementById(v)};
var arrDelays = [];
var intSent;
var bolIsRunning = false;
var bolIsTimeout;
var strURL;
var intTimeout;
var intTimerID;
var objBtn = $("btnSwitch");
var objContent = $("divContent");
var objTxtURL = $("txtURL");
objTxtURL.value = window.location.host;
function handleBtnClick(){
    if(bolIsRunning){
        /*
         * 停止
         */
        var intRecv = arrDelays.length;
        var intLost = intSent-intRecv;
        var sum = 0;
        for(var i=0; i<intRecv; i++)
            sum += arrDelays[i];
        objBtn.value = "Start";
        bolIsRunning = false;
        /*
         * 统计结果
         */
        println(" ");
        println("Ping statistics for " + strURL + ":");
        println("  Packets: Sent = " +
                intSent +
                ", Received = " +
                intRecv +
                ", Lost = " +
                intLost +
                " (" +
                Math.floor(intLost / intSent * 100) +
                "% loss),");
        if(intRecv == 0)
            return;
        println("Approximate round trip times in milli-seconds:");
        println("  Minimum = " +
                Math.min.apply(this, arrDelays) +
                "ms, Maximum = " +
                Math.max.apply(this, arrDelays) +
                "ms, Average = " +
                Math.floor(sum/intRecv) +
                "ms");
    }else{
        /*
         * 开始
         */
        strURL = objTxtURL.value;
        if(strURL.length == 0)
            return;
        if(strURL.substring(0,7).toLowerCase() != "http://")
            strURL = "http://" + strURL;
        intTimeout = parseInt($("txtTimeout").value, 10);
        if(isNaN(intTimeout))
            intTimeout = 2000;
        if(intTimeout < 1000)
            intTimeout = 1000;
        objBtn.value = "Stop ";
        bolIsRunning = true;
        arrDelays = [];
        intSent = 0;
        cls();
        println("Pinging " + strURL + ":");
        println(" ");
        ping();
    }
}
function println(str){
    var objDIV = document.createElement("div");
    if(objDIV.innerText != null)
        objDIV.innerText = str;
    else
        objDIV.textContent = str;
    objContent.appendChild(objDIV);
    objContent.scrollTop = objContent.scrollHeight;
}
function cls(){
    objContent.innerHTML = "";
}
</script>
</body>
</html>

标签: url, function, var, return, ping

DOM js插入与追加新结点

<html>  
<head>  
<title>js DOM插入与追加</title>  
<script type="text/javascript">
   /*使用appendChild创建结点*/  
   function CreateNode(str)    
   {  
      //创建新div  
      var NewDiv = document.createElement("div");   
      //对div设置 id属性  
        NewDiv.id = "dd";   
      //创建div内加入的内容  
      var NewText = document.createTextNode(str);  
      //追加一个新的子结点  
        NewDiv.appendChild(NewText);  
      //返回新创建结点数据  
      return NewDiv;                                  
   }  
   //向指定结点前插入新结点函数  
   function AppBefore(nodeId, str)                      
   {  
      var node = document.getElementById(nodeId);  
      var newNode = CreateNode(str);  
      //如果存在双亲结点  
      if(node.parentNode)                                
      {  
         //insertBefore(newchild,refchild)  说明:newchild(插入的新结点) refchild(将新结点插入到此结点前)  
         node.parentNode.insertBefore(newNode, node);  
      }  
   }  
   //向指定结点内插入新结点函数  
   function insertWithin(nodeId, str)    
   {    
      //指定结点 id  
      var node = document.getElementById(nodeId);  
      var newNode = CreateNode(str);  
      //追加一个新的结点  
      node.appendChild(newNode);  
   }  
   //向指定结点后插入新结点函数  
   function AppAfter(nodeId, str)      
   {  
      var node = document.getElementById(nodeId);  
      var newNode = CreateNode(str);  
      //如果存在上一级结点  
      if(node.parentNode)      
      {  
         //如果存在下一子结点  
         if(node.nextSibling)    
         {  
            // 在下一子结点前插入子结点  
            node.parentNode.insertBefore(newNode, node.nextSibling);  
         }else{  
            // 如果没有下一子结点向后追加子结点  
            node.parentNode.appendChild(newNode);  
         }  
      }  
   }  
</script>  
</head>  
<body>  
<h1><center> DOM JS 插入与追加</center></h1>  
<hr>  
<div style="background-clolor: #66ff00;" mce_style="background-clolor: #66ff00;">  
   <div id="appendChild" style="background-color:#ffcc00;" mce_style="background-color:#ffcc00;"></div>  
</div>  
<hr>  
<!--/star-->  
<form id="form" name="form" action="#" method="get">  
    <input type="text" id="files" name="files">  
    <input type="button" value="指定结点前插入新结点" onclick="AppBefore('appendChild', document.form.files.value);">  
    <input type="button" value="指定结点中插入新结点" onclick="insertWithin('appendChild', document.form.files.value);">  
    <input type="button" value="指定结点后插入新结点" onclick="AppAfter('appendChild', document.form.files.value);">  
</form>  
<!--/enf-->  
</body>  
</html>

标签: var, div, 结点, 插入, str

兼容ie FF 多浏览器的js获取url参数

<script language="javascript" type="text/javascript">
//js获取url参数的function
function request(paras){
var url = location.href;   //url
var paraString = url.substring(url.indexOf("?")+1,url.length).split("&");  
var paraObj = {}   //参数组
for (i=0; j=paraString[i]; i++){  
paraObj[j.substring(0,j.indexOf("=")).toLowerCase()] = j.substring(j.indexOf
("=")+1,j.length);  
}  
var returnValue = paraObj[paras.toLowerCase()];  
if(typeof(returnValue)=="undefined"){  
return "";  
}else{  
return returnValue;  
}  
}
var theurl
theurl=request("url");
if (theurl!=''){
location=theurl
}
</script>

兼容ie FF 多浏览器的js复制代码

MD,找了半天,总算一个比较满意的··     对于火狐,如果浏览器设置没打开,那会麻烦点。

 

function copyToClipboard(txt) { 
     if(window.clipboardData) { 
             window.clipboardData.clearData(); 
             window.clipboardData.setData("Text", txt); 
     } else if(navigator.userAgent.indexOf("Opera") != -1) { 
          window.location = txt; 
     } else if (window.netscape) { 
          try { 
               netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect"); 
          } catch (e) { 
               alert("被浏览器拒绝!\n请在浏览器地址栏输入'about:config'并回车\n然后将 'signed.applets.codebase_principal_support'设置为'true'"); 
          } 
          var clip = Components.classes['@mozilla.org/widget/clipboard;1'].createInstance(Components.interfaces.nsIClipboard); 
          if (!clip) 
               return; 
          var trans = Components.classes['@mozilla.org/widget/transferable;1'].createInstance(Components.interfaces.nsITransferable); 
          if (!trans) 
               return; 
          trans.addDataFlavor('text/unicode'); 
          var str = new Object(); 
          var len = new Object(); 
          var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(Components.interfaces.nsISupportsString); 
          var copytext = txt; 
          str.data = copytext; 
          trans.setTransferData("text/unicode",str,copytext.length*2); 
          var clipid = Components.interfaces.nsIClipboard; 
          if (!clip) 
               return false; 
          clip.setData(trans,null,clipid.kGlobalClipboard); 
     } 
  alert("复制成功!") ;
}