??xml version="1.0" encoding="utf-8" standalone="yes"?>欧美午夜精品一区二区三区电影,四虎国产精品免费久久,97av在线视频http://www.aygfsteel.com/RomKK/archive/2007/07/25/132383.htmlRomKKRomKKWed, 25 Jul 2007 12:16:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/25/132383.htmlhttp://www.aygfsteel.com/RomKK/comments/132383.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/25/132383.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/132383.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/132383.html阅读全文

RomKK 2007-07-25 20:16 发表评论
]]>
Javascript的IE和Firefox兼容性汇~?/title><link>http://www.aygfsteel.com/RomKK/archive/2007/07/25/132219.html</link><dc:creator>RomKK</dc:creator><author>RomKK</author><pubDate>Wed, 25 Jul 2007 02:22:00 GMT</pubDate><guid>http://www.aygfsteel.com/RomKK/archive/2007/07/25/132219.html</guid><wfw:comment>http://www.aygfsteel.com/RomKK/comments/132219.html</wfw:comment><comments>http://www.aygfsteel.com/RomKK/archive/2007/07/25/132219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/RomKK/comments/commentRss/132219.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/RomKK/services/trackbacks/132219.html</trackback:ping><description><![CDATA[Z方便攑ֈ自己的blog里好查,呵呵<br><script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "text"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><br><strong>1. document.form.item 问题<br></strong>    (1)现有问题Q?br>        现有代码中存在许?document.formName.item("itemName") q样的语句,不能?MF 下运?br>    (2)解决ҎQ?br>        改用 document.formName.elements["elementName"]<br>    (3)其它<br>        参见 2<br><br><strong>2. 集合cd象问?/strong><br>    (1)现有问题Q?br>        现有代码中许多集合类对象取用时?()QIE 能接受,MF 不能?br>    (2)解决ҎQ?br>        改用 [] 作ؓ下标q算。如Qdocument.forms("formName") 改ؓ document.forms["formName"]?br>        又如Qdocument.getElementsByName("inputName")(1) 改ؓ document.getElementsByName("inputName")[1]<br>    (3)其它<br><br><strong>3. window.event</strong><br>    (1)现有问题Q?br>        使用 window.event 无法?MF 上运?br>    (2)解决ҎQ?br>        MF ?event 只能在事件发生的现场使用Q此问题暂无法解冟뀂可以这样变通:<br>        原代?可在IE中运?Q?br>            <input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit()"/><br>            ...<br>            <script language="javascript"><br>                function gotoSubmit() {<br>                    ...<br>                    alert(window.event);    // use window.event<br>                    ...<br>                }<br>            </script><br><br>        C?可在IE和MF中运?Q?br>            <input type="button" name="someButton" value="提交" onclick="javascript:gotoSubmit(event)"/><br>            ...<br>            <script language="javascript"><br>                function gotoSubmit(evt) {<br>                    evt = evt ? evt : (window.event ? window.event : null);<br>                    ...<br>                    alert(evt);             // use evt<br>                    ...<br>                }<br>            </script><br>        此外Q如果新代码中第一行不改,与老代码一L??gotoSubmit 调用没有l参?Q则仍然只能在IE中运行,但不会出错。所以,q种Ҏ tpl 部分仍与老代码兼宏V?br><br><strong>4. HTML 对象?id 作ؓ对象名的问题</strong><br>    (1)现有问题<br>        ?IE 中,HTML 对象?ID 可以作ؓ document 的下属对象变量名直接使用。在 MF 中不能?br>    (2)解决Ҏ<br>        ?getElementById("idName") 代替 idName 作ؓ对象变量使用?br><br><strong>5. 用idName字符串取得对象的问题</strong><br>    (1)现有问题<br>        在IE中,利用 eval(idName) 可以取得 id ?idName ?HTML 对象Q在MF 中不能?br>    (2)解决Ҏ<br>        ?getElementById(idName) 代替 eval(idName)?br><br><strong>6. 变量名与?HTML 对象 id 相同的问?/strong><br>    (1)现有问题<br>        ?MF 中,因ؓ对象 id 不作?HTML 对象的名Uͼ所以可以用与 HTML 对象 id 相同的变量名QIE 中不能?br>    (2)解决Ҏ<br>        在声明变量时Q一律加?var Q以避免歧义Q这样在 IE 中亦可正常运行?br>        此外Q最好不要取?HTML 对象 id 相同的变量名Q以减少错误?br>    (3)其它<br>        参见 问题4<br><br><strong>7. event.x ?event.y 问题</strong><br>    (1)现有问题<br>        在IE 中,event 对象?x, y 属性,MF中没有?br>    (2)解决Ҏ<br>        在MF中,与event.x {效的是 event.pageX。但event.pageX IE中没有?br>        故采?event.clientX 代替 event.x。在IE 中也有这个变量?br>        event.clientX ?event.pageX 有微妙的差别Q当整个面有滚动条的时候)Q不q大多数时候是{效的?br><br>        如果要完全一P可以E麻烦些Q?br>        mX = event.x ? event.x : event.pageX;<br>        然后?mX 代替 event.x<br>    (3)其它<br>        event.layerX ?IE ?MF 中都有,具体意义有无差别未试验?br><br><br><strong>8. 关于frame</strong><br>   (1)现有问题<br>         ?IE?可以用window.testFrame取得该frameQmf中不?br>   (2)解决Ҏ<br>         在frame的用方面mf和ie的最主要的区别是Q?br>如果在frame标签中书写了以下属性:<br><frame src="xx.htm" id="frameId" name="frameName" /><br>那么ie可以通过id或者name讉Kq个frame对应的window对象<br>而mf只可以通过name来访问这个frame对应的window对象<br>例如如果上述frame标签写在最上层的window里面的htm里面Q那么可以这栯?br>ieQ?window.top.frameId或者window.top.frameName来访问这个window对象<br>mfQ?只能q样window.top.frameName来访问这个window对象<br><br>另外Q在mf和ie中都可以使用window.top.document.getElementById("frameId")来访问frame标签<br>q且可以通过window.top.document.getElementById("testFrame").src = 'xx.htm'来切换frame的内?br>也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内?br>关于frame和window的描q可以参见bbs?#8216;window与frame’文章<br>以及/test/js/test_frame/目录下面的测?br><br><strong>9. 在mf中,自己定义的属性必getAttribute()取得</strong><br>10.在mf中没?nbsp; parentElement parement.children  而用<br>               parentNode parentNode.childNodes<br>   childNodes的下标的含义在IE和MF中不同,MF使用DOM规范QchildNodes中会插入I白文本节点?br>  一般可以通过node.getElementsByTagName()来回避这个问题?br>   当html中节点缺失时QIE和MF对parentNode的解释不同,例如<br>   <form><br>   <table><br>        <input/><br>   </table><br>   </form><br>   MF中input.parentNode的gؓform, 而IE中input.parentNode的gؓI?br><br>  MF中节Ҏ有removeNodeҎQ必M用如下方?node.parentNode.removeChild(node)<br><br><strong>11.const 问题</strong><br>  (1)现有问题:<br>     ?IE 中不能?const 关键字。如 const constVar = 32; 在IE中这是语法错误?br>  (2)解决Ҏ:<br>     不?const Q以 var 代替?br><br><strong>12. body 对象</strong><br>   MF的body在body标签没有被浏览器完全d之前存在,而IE则必dbody完全被读入之后才存在<br><br><strong>13. url encoding</strong><br>在js中如果书写urlq接写&不要?amp;例如var url = 'xx.jsp?objectName=xx&objectEvent=xxx';<br>frm.action = url那么很有可能url不会被正常显CZ至于参数没有正确的传到服务器<br>一般会服务器报错参数没有找?br>当然如果是在tpl中例外,因ؓtpl中符合xml规范Q要?amp;书写?amp;<br>一般MF无法识别js中的&<br><br><br><strong>14. nodeName ?tagName 问题</strong><br>  (1)现有问题Q?br>     在MF中,所有节点均?nodeName |?textNode 没有 tagName 倹{在 IE 中,nodeName 的用好?br>     有问题(具体情况没有试Q但我的IE已经M好几ơ)?br>  (2)解决ҎQ?br>     使用 tagNameQ但应检其是否为空?br><br><strong>15. 元素属?/strong><br>   IE?input.type属性ؓ只读Q但是MF下可以修?br><br><br><strong>16. document.getElementsByName() ?document.all[name] 的问?/strong><br>  (1)现有问题Q?br>     ?IE 中,getElementsByName()、document.all[name] 均不能用来取?div 元素?br> <script type="text/javascript"><!-- google_ad_client = "pub-4399204441904216"; google_ad_width = 728; google_ad_height = 90; google_ad_format = "728x90_as"; google_ad_type = "image"; //2007-07-24: http://romkk.j5com.cn/blog google_ad_channel = "8013984535"; google_color_border = "F7F7F7"; google_color_bg = "F7F7F7"; google_color_link = "0000FF"; google_color_text = "000000"; google_color_url = "008000"; //--> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script><img src ="http://www.aygfsteel.com/RomKK/aggbug/132219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/RomKK/" target="_blank">RomKK</a> 2007-07-25 10:22 <a href="http://www.aygfsteel.com/RomKK/archive/2007/07/25/132219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用Velocity和Javascript操作FCKeditorhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/131993.htmlRomKKRomKKTue, 24 Jul 2007 02:49:00 GMThttp://www.aygfsteel.com/RomKK/archive/2007/07/24/131993.htmlhttp://www.aygfsteel.com/RomKK/comments/131993.htmlhttp://www.aygfsteel.com/RomKK/archive/2007/07/24/131993.html#Feedback0http://www.aygfsteel.com/RomKK/comments/commentRss/131993.htmlhttp://www.aygfsteel.com/RomKK/services/trackbacks/131993.html
其实很早以前׃用过FCKeditorQ那是在做一个新d布系l中Q当时用jsp + struts来开发,FCKeditor在jsp下的配置在网上有很多相关的文章,q里׃多说了。现在用Velocity开发tychoӞ也用CFCKeditorQ其实配|和jsp一P只是思维需要{换一下,卻I|上所介绍的jsp下用FCKeditor一般都是在jsp面上生成实例,而Velocityq不能完成这一需求,那么我们FCKeditor的实例放在后台bean中生成,q放入requestQ然后在Velocity中对其进行设|。后台bean中写法如下:

FCKeditor fckEditor = new FCKeditor(super.getRequest());
request.setAttribute("fckEditor", fckEditor);

Velocity在中取到这个实例ƈ对其q行讄Q?/p>

$!{fckEditor.setHeight("190")}
$!{fckEditor.setWidth("420")}
$!{fckEditor.setBasePath("fckeditor/")}
$!{fckEditor.setToolbarSet("Basic")}
$!{fckEditor.setInstanceName("comment")}
$!{fckEditor.create()}

非常单,比用jsp实现要容易多了。至不用设|page?/p>

利用Javascript取和设FCKeditorg是非常容易的Q如下:

// 获取~辑器中HTML内容
function getEditorHTMLContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.GetXHTML(true));
}

// 获取~辑器中文字内容
function getEditorTextContents(EditorName) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName);
    return(oEditor.EditorDocument.body.innerText);
}

// 讄~辑器中内容
function SetEditorContents(EditorName, ContentStr) {
    var oEditor = FCKeditorAPI.GetInstance(EditorName) ;
    oEditor.SetHTML(ContentStr) ;
}

FCKeditorAPI是FCKeditor加蝲后注册的一个全局对象Q利用它我们可以完成对~辑器的各种操作?/p>

在当前页获得 FCK ~辑器实例:
var Editor = FCKeditorAPI.GetInstance('InstanceName');

?FCK ~辑器的弹出H口中获?FCK ~辑器实例:
var Editor = window.parent.InnerDialogLoaded().FCK;

从框枉面的子框架中获得其它子框架的 FCK ~辑器实例:
var Editor = window.FrameName.FCKeditorAPI.GetInstance('InstanceName');

从页面弹出窗口中获得父窗口的 FCK ~辑器实例:
var Editor = opener.FCKeditorAPI.GetInstance('InstanceName');

获得 FCK ~辑器的内容Q?br>oEditor.GetXHTML(formatted); // formatted 为:true|falseQ表C是否按HTML格式取出
也可用:
oEditor.GetXHTML();

讄 FCK ~辑器的内容Q?br>oEditor.SetHTML("content", false); // W二个参CؓQtrue|falseQ是否以所见即所得方式设|其内容。此Ҏ常用?讄初始??表单重置"哦作?/p>

插入内容?FCK ~辑器:
oEditor.InsertHtml("html"); // "html"为HTML文本

?FCK ~辑器内Ҏ否发生变化:
oEditor.IsDirty();

?FCK ~辑器之外调?FCK ~辑器工h命oQ?br>命o列表如下Q?br>DocProps, Templates, Link, Unlink, Anchor, BulletedList, NumberedList, About, Find, Replace, Image, Flash, SpecialChar, Smiley, Table, TableProp, TableCellProp, UniversalKey, Style, FontName, FontSize, FontFormat, Source, Preview, Save, NewPage, PageBreak, TextColor, BGColor, PasteText, PasteWord, TableInsertRow, TableDeleteRows, TableInsertColumn, TableDeleteColumns, TableInsertCell, TableDeleteCells, TableMergeCells, TableSplitCell, TableDelete, Form, Checkbox, Radio, TextField, Textarea, HiddenField, Button, Select, ImageButton, SpellCheck, FitWindow, Undo, Redo

使用Ҏ如下Q?br>oEditor.Commands.GetCommand('FitWindow').Execute();

FCKeditor目录_说明:
1. 根目录下的文件只留下fckconfig.js, fckeditor.js, fckstyles.xml, fcktemplates.xml四个文g
2. 删除所有的以_开头的文g和文件夹
3. 删除FCKeditor\editor\filemanager\upload目录下的所有文?
4. 删除FCKeditor\editor\filemanager\browser\default\connectors目录下的所有文?
5. 删除FCKeditor\editor\_source目录

以下部分为引用,觉得挺实用,做个备䆾?/strong>

上传文g部分的定Ӟ适用于高U用戗?br>
W一部分Q装自己定制的插Ӟ实现模板标签Q开源的东西有q点好处Q随心所Ʋ地修改Q,打开fckconfig.js文g扑ֈ
FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ; 
// FCKConfig.Plugins.Add( 'placeholder', 'en,it' ) ; 


L//后,q当于把placeholderq个插g功能加上了,fckeditor的插件文仉?editor/plugins/文g夹下分类按文件夹攄的,对于fckeditor2.0来说Q里面有两个文g夹,也就是有两个官方插gQplaceholderq个文g夹就是我们刚才加上去的,主要用于多参数或单参数自定义标签的匹配,q个在制作编辑模板时非常用Q要想看具体实例的话Q大家可以去下蝲acmsq个pȝ查看学习Q另一个文件夹tablecommands是~辑器里的表格编辑用到的了。当Ӟ如果你想制作自己其它用途的插gQ那只要按照fckeidtor插g的制作规则制作完攄?editor/plugins/下就行,然后再在fckeidtor.js里再dFCKConfig.Plugins.Add('Plugin Name',',lang,lang');可以了?br>
W二部分 Q如何让~辑器一打开的时候,~辑工具条不出现Q等?#8220;展开工具?#8221;时才出现QEasyQFCKeditor本n提供了这个功能啦Q打开fckconfig.jsQ找?br>
FCKConfig.ToolbarStartExpanded = true ;
Ҏ
FCKConfig.ToolbarStartExpanded = false ;
可以啦Q?br>
W三部分Q用自q表情图标Q同h开fckcofnig.js到最底部那一D?br>

FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/' ;
FCKConfig.SmileyImages = ['regular_smile.gif','sad_smile.gif','wink_smile.gif'] ;
FCKConfig.SmileyColumns = 8 ;
FCKConfig.SmileyWindowWidth   = 320 ;
FCKConfig.SmileyWindowHeight = 240 ;

上面q段已经是我修改q的了,Z我发表此文的版面不会被撑得太开Q我把FCKConfig.SmileyImages那一行改得只有三个表情图了?br>
W一行,当然是表情图标\径的讄Q第二行是相兌情图标文件名的一个ListQ第三行是指弹出的表情添加窗口最每行的表情数Q下面两个参数是弹出的模态窗口的宽和高喽?br>
W四部分Q文件上传管理部?br>
此部分可能是大家最为关心的Q上一文章简单的讲了如何修改来上传文件以及用fckeidtor2.0才提供的快速上传功能。再我们l箋再深层次的讲解上传功?br>
FCKConfig.LinkBrowser = true ;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true ;在fckconfig.js扑ֈq三句,q三句不是连着的哦Q只是我把他们集中到q儿来了Q设|ؓtrue的意思就是允怋用fckeditor来浏览服务器端的文g囑փ以及flash{,q个功能是你插入囄时弹出的H口上那?#8220;览服务?#8221;按钮可以体现出来Q如果你的编辑器只用来自q或是只在后台理用,q个功能无疑很好用,因ؓ他让你很直观地对服务器的文gq行上传操作。但是如果你的系l要面向前台用户或是像blogq样的系l要用的话,q个安全隐患可就大了哦。于是我们把其一律设|ؓfalse;如下

FCKConfig.LinkBrowser = false ;
FCKConfig.ImageBrowser = false ;
FCKConfig.FlashBrowser = false ;

q样一来,我们只有快速上传可用了啊,好!接下来就来修改,同样以asp例进行,q入/editor/filemanager/upload/asp/打开config.aspQ修?br>ConfigUserFilesPath = "/UserFiles/"q个讄是上传文件的ȝ录,我这里就不动了,你想改自己改?br>
好,再打开此目录下的upload.asp文gQ找C面这一D?br>

Dim resourceType
If ( Request.QueryString("Type") <> "" ) Then
resourceType = Request.QueryString("Type")
Else
resourceType = "File"
End If 
然后再在其后面添?br>

ConfigUserFilesPath = ConfigUserFilesPath & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/" 
q样的话Q上传的文gp?#8220;/userfiles/文gcdQ如image或file或flash)/q??”q样的文件夹下了Q这个设|对单用h用已l够了Q如果你想给多用Ll用Q那ph?br>

ConfigUserFilesPath = ConfigUserFilesPath & Session("username") & resourceType &"/"& Year(Date()) &"/"& Month(Date()) &"/" 
q样上传的文件就q入“/userfiles/用户目录/文gcd/q??”下了Q当然如果你不想q么安排也可以修Ҏ别的Q比如说用户目录再深一层等Q这里的Session("username")h据自q需要进行修Ҏ换掉?br>
上传的目录设|完了,但是上传E序q不会自己创些文件夹Q如果不存在的话Q上传不会成功的Q那么我们就得根据上面的上传路径的要求进行递归来生成目录了?br>
扑ֈq一D?br>

Dim sServerDir
sServerDir = Server.MapPath( ConfigUserFilesPath )
If ( Right( sServerDir, 1 ) <> "\" ) Then
   sServerDir = sServerDir & "\"
End If

把它下面的这两行


Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) 
用下面这一D代码来替换


dim arrPath,strTmpPath,intRow
strTmpPath = ""
arrPath = Split(sServerDir, "\") 
Dim oFSO
Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" )
for intRow = 0 to Ubound(arrPath)
   strTmpPath = strTmpPath & arrPath(intRow) & "\"
   if oFSO.folderExists(strTmpPath)=false then
    oFSO.CreateFolder(strTmpPath)
   end if
next 
用这D代码就可以生成你想要的文g夹了Q在上传的时候自动生成?br>
好了Q上传文件的修改到现在可以暂时告一D落了,但是Q对于中文用戯存在q么个问题,是fckeditor的文件上传默认是不改名的Q同时还不支持中文文件名Q这样一来是上传的文件会变成“.jpg”q样的无法读的文Ӟ再就是会有重名文Ӟ当然重名q点倒没什么,因ؓfckeditor会自动改名,会在文g名后加(1Q这hq行标识。但是,我们通常的习惯是让程序自动生成不重复的文件名

在刚才那一D代码的下面紧接着是
' Get the uploaded file name.
sFileName = oUploader.File( "NewFile" ).Name
看清楚了Q这个就是文件名啦,我们来把它改掉,当然得有个生成文件名的函数才行,Ҏ下面q样

'//取得一个不重复的序?br>Public Function GetNewID()
dim ranNum
dim dtNow
randomize
dtNow=Now()
ranNum=int(90000*rnd)+10000
GetNewID=year(dtNow) & right("0" & month(dtNow),2) & right("0" & day(dtNow),2) & right("0" & hour(dtNow),2) & right("0" & minute(dtNow),2) & right("0" & second(dtNow),2) & ranNum
End Function

' Get the uploaded file name.
sFileName = GetNewID() &"."& split(oUploader.File( "NewFile" ).Name,".")(1)

q样一来,上传的文件就自动改名生成?0050802122536365.jpgq样的文件名了,是由q月日时分秒以及三位随机数组成的文g名了?br>