天天看點

js 一些小技巧 3

(1)同時按ctrl+enter送出本表單

js 一些小技巧 3

在多行文本域增加onkeydown 事件

com.whuang.hsj.ctrlenter2submit的實作如下:

js 一些小技巧 3

<code style="display: block; padding: 0px; color: inherit; font-family: 'source code pro', monospace; font-size: inherit; border-radius: 0px; background: transparent;" class="hljs scala has-numbering">/***  

 *  

 1. @param event : textarea onkeydown event  

 2. @param formelement : textarea itself  

 */  

com.whuang.hsj.ctrlenter2submit= function (event,formelement) {  

    if(event.keycode == 13 && event.ctrlkey) {  

        var $thisform=com.whuang.hsj.getform(formelement);  

        var submitbtn=$thisform.find(":button:first");  

        submitbtn.get(0).click();  

    }  

};</code>  

js方法執行流程:先通過com.whuang.hsj.getform 方法擷取textarea所在的表單,然後擷取表單下的第一個按鈕,最後觸發按鈕的onclick事件. 

注意:”:button:first” 表示第一個按鈕,同理”:input:first”表示第一個表單控件(輸入框,按鈕,複選框等) 

(2)實作漸變地回到頂部

js 一些小技巧 3

“回到标題”的html代碼如下:

js 一些小技巧 3

<a style="float: right;" class="ahref" onclick="anchorgowhere('title_loc_bbs')">回到标題</a>  

anchorgowhere是js方法,實作如下:

js 一些小技巧 3

var anchorgowhere = function (anchorname) {  

$("#subpagebbs .subcontent").animate({scrolltop: $("a[name=" + anchorname + "]").offset().top}, 1000);  

};  

說明:$(“#subpagebbs .subcontent”) 是滾動條所在的div 

jquery對象.get(0) .例如

js 一些小技巧 3

$navhrefcomment.get(0).onclick = function () {  

        bbs.addbbscomment(cardid2);  

    };  

(4)textarea字元長度限制

js 一些小技巧 3

/* 

 1. textarea字元長度限制 

ismaxlen = function(event) {  

    var obj = event.srcelement?event.srcelement:event.target;  

    var target = $("#"+obj.getattribute("id").replace(".","\\."));  

    var maxlength = target.attr("maxlength");  

    if (target.val().length > maxlength) {  

        target.blur();  

        target.val(target.val().substring(0, maxlength));  

        target.focus();  

(5)回車+ctrl實作換行

js 一些小技巧 3

 * 回車+ctrl換行 

newline = function(event) {  

     if(event.keycode == 13 && event.ctrlkey){  

         if (document.selection) {  

             var selecttext = document.selection.createrange();  

             if(selecttext){  

                 if(selecttext.text.length > 0)  

                     selecttext.text += "\r\n";  

                 else  

                     selecttext.text = "\r\n";  

                 selecttext.select();  

                 }  

         }  

         else{  

             var obj = event.srcelement?event.srcelement:event.target;  

             obj.value += "\r\n";  

             }  

     };  

(6)使遮罩層的背景圖檔不随滾動條移動

之前顯示遮罩層時,背景圖檔總是随滾動條的移動而改變,如下圖:

js 一些小技巧 3
js 一些小技巧 3

 這樣就存在一個問題,就是内容太長時,有滾動條,而我設定的背景圖檔的位置在垂直和水準居中,就導緻有時候,顯示遮罩層,但是看不到背景圖檔(轉圈的圖檔,提示等待),導緻使用者體驗不好.

那麼如何讓背景圖檔始終在可視區域的居中位置呢?

終于找到方法了(參考http://www.cnblogs.com/wangmuxing/p/4369282.html)

使用background-attachment:fixed;屬性

(7)jquery 擷取javascript腳本内容

js 一些小技巧 3

<!doctype html>  

<html>  

<head lang="en">  

    <meta charset="utf-8">  

    <script type="text/javascript" src="jquery-1.11.1.js" id="scriptcontent2"></script>  

    <script type="text/javascript" id="scriptcontent">  

        var jsonp2 = function () {  

            $.ajax({  

                url: "http://localhost/cors/complex?callback=?",   

                datatype: "jsonp",  

                success: function (data) {  

                    $('#resultdiv').html(json.stringify(data));  

                }  

            });  

        };  

        function mycallback(data) {  

            alert("here: " + data.name);  

        }  

        var getscriptcontent = function (e) {  

            alert($('#scriptcontent').text());  

    </script>  

</head>  

<body>  

<input type="button" value="jquery jsonp" onclick="jsonp2()"/>   

<input type="button" value="擷取腳本内容" onclick="getscriptcontent()"/>  

<div>  

    <div id="resultdiv"></div>  

</div>  

</body>  

</html>  

(8)動态設定script腳本内容

js 一些小技巧 3

var script = document.createelement('script');  

       script.type = 'text/script';  

       script.text = 'alert(123)';  

繼續閱讀