如何使用JavaScript调用系统的软键盘

如何使用JavaScript调用系统的软键盘,第1张

<html>

<body>

<input type="text" id="tt" />

<script language="javascript" type="text/javascript">

document.getElementById('tt').onfocus = function(){

var shell = new ActiveXObject("wscript.shell")

shell.run("osk.exe")

}

</script>

</body>

</html>

我知道:

这个只能在IE浏览器实现,而且需要设定IE的安全级别,允许浏览器加载ActiveXObject控件,如图。

如果不用系统自带的软键盘,可以用js实现。网上找到一个js写的。你可以看看

<!DOCTYPE HTML>

<html>

<head>

<meta charset="UTF-8" />

<title>动态多宫格</title>

<style type="text/css">

</style>

<script type="text/javascript">

window.onload = function ()

    {

    Grids.init ()

    }

    var Grids =

    {

     row: 4,

     col: 4,

        arr : [

                1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15

        ],

        init : function ()

        {

        document.body.style['text-align'] = 'center'

        var table = document.createElement ('table')

        table.style['margin'] = '0 auto'

        document.title = table.id = 'Grids' + this.row * this.col

        document.title += " 还未开始游戏"

        for ( var i = 0 i < this.row + 1 i++)

        {

        var tr = table.insertRow (table.rows.length)

        for ( var j = 0 j < this.col j++)

        {

        if (i <= this.row-1 && j <= this.col-1)

        {

        var td = tr.insertCell (tr.cells.length)

        var btn = document.createElement ("input")

        btn.type = 'button'

        btn.style.width = '50px'

        btn.style.height = '50px'

        td.appendChild (btn)

        if (i <= this.row-2 || i == this.row-1 && j <= this.col-2)

        {

        var start = Math.floor (Math.random () * this.arr.length)

        btn.value = this.arr[start]

        this.arr.splice (start, 1)

        }

        else

        {

        btn.value = ''

        }

        }

        }

        if (i == this.row)

        {

        var td = tr.insertCell (tr.cells.length)

        td.colSpan = this.col

        td.style.textAlign = 'center'

        var btn = document.createElement ("input")

        btn.type = 'button'

        btn.value = '开始'

        btn.style.width = '50px'

        btn.style.height = '30px'

        btn.onclick = function ()

        {

         var table = this.parentElement.parentElement.parentElement

         var rs = table.rows

         for ( var j = 0 j < rs.length - 1 j++)

                        {

                        var cs = rs[j].cells

                        for ( var k = 0 k < cs.length k++)

                            {

                            cs[k].children[0].onclick = function ()

                            {

                             Grids.go (this)

                            }

                            }

                        }

         document.title = document.title.replace(/(Grids\d+).*/, '$1 已开始')

        }

        td.appendChild (btn)

        }

        }

        document.body.appendChild (table)

        Grids.key()

        Grids.isOver(table)

        },

        find : function (p, row, col)

        {

        var reg = /^\s*|\s*$/g

        var rc = [

                [

                        row - 1, col

                ], [

                        row + 1, col

                ], [

                        row, col - 1

                ], [

                        row, col + 1

                ]

        ]

        for ( var i = 0 i < rc.length i++)

        {

        if (rc[i][0] >= 0 && rc[i][0] < this.col && rc[i][1] >= 0 && rc[i][1] < this.col)

        {

        if (p.rows[rc[i][0]].cells[rc[i][1]].children[0].value.replace (reg, '') == '')

        {

        return [

                rc[i][0], rc[i][1]

        ]

        }

        }

        }

        return null

        },

        go : function (btn)

        {

         var p = btn.parentElement.parentElement.parentElement

        var row = btn.parentElement.parentElement.rowIndex

        var col = btn.parentElement.cellIndex

        var site = Grids.find (p, row, col)

        if (!!site)

        {

        var r = site[0], c = site[1]

        var replaced = p.rows[r].cells[c].children[0]

        p.rows[row].cells[col].appendChild (replaced)

        p.rows[r].cells[c].appendChild (btn)

        }

        this.isOver(p)

        },

        key: function ()

        {

         var table = document.getElementById("Grids" + this.row * this.col)

         var rows = table.rows

         document.onkeyup = function (e)

         {

         e = e || window.event

         var keycode = e.keyCode

         // up, down, left, right

         if (!/^(38|40|37|39)$/.test(keycode))

                {

                 return false

                }

         var btns = [], r = -1, c = -1

         for ( var i = 0 i < rows.length - 1 i++)

                {

         var ri = rows[i]

                for ( var j = 0 j < ri.cells.length j++)

                    {

                    var btn = ri.cells[j].children[0]

                    if (btn.value === '')

                        {

                        r = i

                        c = j

                        break

                        }

                    }

                }

         var site = [[r+1,c],[r-1,c],[r, c+1],[r, c-1]]

         for ( var i = 0 i < site.length i++)

                {

         var rs = rows[site[i][0]]

         if (!!rs)

                    {

         if (rs.cells.length == Grids.col)

                        {

         var temp = rs.cells[site[i][1]]

                 if (!!temp)

                            {

                         btns.push(temp.children[0])

                            }

                 else 

                 {

         btns.push(null)

         }

                        }

         else 

         {

         btns.push(null)

}

                    }

         else 

         {

btns.push(null)

}

                }

         switch (keycode)

                {

                case 38:

                 !!btns[0] ? Grids.go(btns[0]) : 0

                break

                case 40:

                 !!btns[1] ? Grids.go(btns[1]) : 0

                break

                case 37:

                 !!btns[2] ? Grids.go(btns[2]) : 0

                break

                case 39:

                 !!btns[3] ? Grids.go(btns[3]) : 0

                break

                default:

                break

                }

         }

        },

        isOver: function (table)

        {

         var rows = table.rows, flag = true

         L: for ( var i = 0 i < rows.length - 1 i++)

            {

         var r = rows[i], len = r.cells.length

         if (i == rows.length - 2)

                {

         len = 1

                }

         for ( var j = 0 j < len j++)

                {

                if ( r.cells[j].children[0].value != i * r.cells.length + j + 1 )

                    {

                    flag = false

                    break L

                    }

                }

            }

        if (flag)

            {

            alert ('YOU WIN !')

            return true

            }

        return false

        }

    }

</script>

</head>

<body>

</body>

</html>

本文实例为大家分享了js抽奖程序的编写代码,以及编写注意事项,感兴趣的小伙伴们可以参考一下

代码:

<!DOCTYPE

html>

<html

lang="en">

<head>

<meta

charset="UTF-8">

<title>简单抽奖(可用键盘)</title>

<style>

*{margin:0padding:0}

.box{width:

400pxheight:

300pxmargin:50px

autobackground:

red}

.title{color:

#ffffont-size:

30pxfont-weight:700pxpadding:

50px

0text-align:

centerheight:40px}

.btm{text-align:

centerpadding:20px

0}

.btm

a{display:

inline-blockwidth:

120pxheight:60pxline-height:

60pxbackground:

#FEF097margin:0

10pxtext-decoration:

none}

</style>

<script>

var

data=['Iphone','Ipad','笔记本','相机','谢谢参与','充值卡','购物券'],

timer=null,//定时器

flag=0//阻止多次回车

window.onload=function(){

var

play=document.getElementById('play'),

stop=document.getElementById('stop')

//

开始抽奖

play.onclick=playFun

stop.onclick=stopFun

//

键盘事件

document.onkeyup=function(event){

event

=

event

||

window.event

//

回车键的code值:13

if(event.keyCode==13){

if(flag==0){

playFun()

flag=1

}else{

stopFun()

flag=0

}

}

}

function

playFun(){

var

title=document.getElementById('title')

var

play=document.getElementById('play')

clearInterval(timer)

timer=setInterval(function(){

var

random=Math.floor(Math.random()*data.length)

title.innerHTML=data[random]

},60)

play.style.background='#999'

}

function

stopFun(){

clearInterval(timer)

var

play=document.getElementById('play')

play.style.background='#FEF097'

}

}

</script>

</head>

<body>

<div

class="box">

<div

class="title"

id="title">淘家趣抽奖</div>

<div

class="btm">

<a

href="javascript:"

id="play">开始</a>

<a

href="javascript:"

id="stop">停止</a>

</div>

</div>

</body>

</html>

注意点:

1.随机数,取数组的其中一个;取0-n之间:Math.random()*(n+1)

2.定时器,开始抽奖时要停止前面的一次抽奖,不然会定时器重叠

3.按键 *** 作,要判断是抽奖进行中,还是未开始,所有设置了变量

flag

想要学习更多关于javascript抽奖功能,请参考此专题:javascript实现抽奖功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/bake/11931166.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存