以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 SVG/GML/VRML/X3D/XAML 』  (http://bbs.xml.org.cn/list.asp?boardid=21)
----  [原创]一个简单的中西文文字编辑框控件  (http://bbs.xml.org.cn/dispbbs.asp?boardid=21&rootid=&id=19351)


--  作者:样条
--  发布时间:6/7/2005 4:04:00 PM

--  [原创]一个简单的中西文文字编辑框控件
[color=#0000FF][size=4]用键盘按键事件实现的.代码如下.输入文字时,有时反应比较迟钝,不知哪位高手有解决办法或更好的实现方案.
<?xml version="1.0" standalone="no"?>
<!-- 无光标定位、无替换选中文字功能和粘贴功能的单行编辑元件  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg width="310" height="182" viewBox="0 -15 310 182" onload="init(evt)">
<script type="text/ecmascript"> <![CDATA[
var svgdoc = ""
var prompt_text="?"   //单行编辑元件内的字符串
function init(evt)
{
 svgdoc = evt.target.ownerDocument
 var version = window.getSVGViewerVersion()
 if (version.indexOf("6.0") >= 0)
  ASV = 6
 else
  ASV = 3
}

function prompt_tape(evt)
{
 if (ASV == 6)
  return
 key = evt.charCode;
 if ((key!=13)&&(key!=27)&&(ASV != 6))
 {
  if (key==8)  //按backspace键
                {
                    if (prompt_text!="")
   prompt_text=prompt_text.substring(0,prompt_text.length-1)
                }
  else         //按其他键
  {
   lettre = String.fromCharCode(key)
   prompt_text=prompt_text+lettre
  }
  objet=svgdoc.getElementById("prompt_result")
  objet.firstChild.data = prompt_text    //替换原文本
 }
}

  ]]> </script>
<text x="20" y="50" style="text-anchor:left;font-size:11pt;font-family:SimSun;fill:black">无光标定位和剪切粘贴功能的单行编辑元件</text>
<rect x="15" y="90" width="280" height="25" onkeypress="prompt_tape(evt)" style="fill:white;stroke:black;fill-opacity:1"/>
<text id="prompt_result" x="20" y="110" editable="true" style="text-anchor:left;font-size:12pt;font-family:SimSun;fill:black">?</text>
</svg>

[/face][/size][/color]


W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
7,589.844ms