标签为 LBS 的存档

曾经用过”生活笔谈的”的这个功能,只是可惜,他的版本只能用于IE的复制,而FF则不支持,结果搞得我在FF下不能发表日志,还要切换在IE下才行,用google搜到了一个借用swf文件实现的代码,因为对swf不了解,原理不太清楚,但经试用后发现对英文支持的很好,但对中文却支持的不好,显示的全是代码形式,无力解决,只好用了另外一种更合适的方法,今天抽时间修正了下这个功能,可以兼容诸多的浏览器了.
鉴于改动太多,还是把修改的全过程贴一下吧!

第一步:修改messageform.js,查找到:

theForm.submit()

在其上添加:

CopyText();

然后再在文档末尾添加下面这段代码:

function CopyText() {
var newisCopy;
newisCopy=document.getElementById(“iscopy”).checked;
if(newisCopy==true){
//copyToClipboard(document.getElementById(id).value);
copyToClipboard(document.getElementById(“message”).value);
}

}

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);
}
}

第二步:修改article.asp,查找到:

<input name=”e_smilies” type=”checkbox” value=”true”<%if(objArticle.ubbFlags!=”html” && objArticle.ubbFlags.substr(4,1)==”1″) write(” checked=\”checked\”")%> /> <%=lang["e_smilies"]%>

修改成:

<input name=”e_smilies” type=”checkbox” value=”true”<%if(objArticle.ubbFlags!=”html” && objArticle.ubbFlags.substr(4,1)==”1″) write(” checked=\”checked\”")%> /> <%=lang["e_smilies"]%><br />
<input id=”iscopy” name=”iscopy” type=”checkbox” value=”true” checked=”checked” />自动复制

第三步:修改global.asp,查找到:

<input name=”comm_hidden” type=”checkbox” value=”true”<%if(bHidden) write(” checked=\”checked\”")%> /> <%=lang["comm_hidden"]%>

在其上面添加:

<input name=”iscopy” type=”checkbox” value=”true” checked=”checked” />自动复制<br />

然后再查找到:

<input type=”submit” name=”btnSubmit” value=” <%=lang["post_comment"]%> ” onclick=”this.disabled=true;document.inputform.submit();” class=”button” />

修改成:

<input type=”submit” name=”btnSubmit” value=” <%=lang["post_comment"]%> ” onclick=”this.disabled=true;CopyText();document.inputform.submit();” class=”button” />

LBS修改-随机日志出现的问题

昨天开始试用“生活笔谈”的随机日志功能,修改改好程序后,发现有点小问题,在FF里浏览网页没有问题,但用IE在查看时发现有些日志里一部分和随机日志模块平行的外围容器中文字不见了!真是郁闷呀,在他那里没有找到相关的问题说明,没有办法自己解决吧。

问题还是出在了CSS上面,举个例子会很明白:
css :

body { margin: 10px 50px;}
#contener { border: 1px solid #000; background-color: yellow;}
#floatRight { float: right; border: 1px solid red; color: red; width: 30%;}
#contenu { border: 1px solid blue; color: blue;}
.spacer { clear: both; border: 1px solid #FF00FF; color: #FF00FF;}

xhtml :

<div id=”contener”>
<b>#contener</b>
<div id=”floatRight”>
<b>#floatRight</b> : Float block at the right of the block #contenu
</div>
<div id=”contenu”>
<b>#contenu</b> : Simple block
</div>
<div class=’spacer’>
<b>.spacer</b> : a “spacer” block…
</div>
</div>

正确应该显示为:
http://www.jluvip.com/blog/uploads/200606/08_181038_ok2.png

Internet Explorer 6 显示为 :
http://www.jluvip.com/blog/uploads/200606/08_181047_ie_bug2.png

#contener 层的文字和#contenu层不见了! 只有#contener的背景颜色!

解决办法 :

body { margin: 10px 50px;}
#contener {
position: relative; /* 增加的 */
border: 1px solid #000;
background-color: yellow;
}
#floatRight {
position: relative; /* 增加的*/
float: right;
border: 1px solid red;
color: red;
width: 30%;
}

LBS修改-自动换行的解决方案

这几天发表日志的时候,有时候要引用些程序代码,可有些代码过长,结果搞得我的页面大乱,十分不美观,于是通过了下面两个办法解决了:
一、本来我的网页最佳的显示分辩率是800*600以上的,现在估计用这种分辩率人很少了吧?于是改成了1024*768的效果,宽度长了,换行的问题自然就解决了。 [lol]

二、代码控制,说明如下,只是个例子,可以根据需要自行调整:

1.(IE浏览器)连续的英文字符和阿拉伯数字,使用word-wrap : break-word ;或者word-break:break-all;实现强制断行

#mainwrap{word-break:break-all; width:200px;}
或者
#mainwrap{word-wrap:break-word; width:200px;}

<div id=”wrap”>abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>

效果:可以实现换行

2.(Firefox浏览器)连续的英文字符和阿拉伯数字的断行,Firefox的所有版本的没有解决这个问题,我们只有让超出边界的字符隐藏或者,给容器添加滚动条

#wrap{word-break:break-all; width:200px; overflow:auto;}

<div id=”wrap”>abcdefghijklmnabcdefghijklmnabcdefghijklmn111111111</div>

效果:容器正常,内容隐藏

如果想知道更多,请仔细阅读 http://www.blueidea.com/tech/web/2006/3469.asp 的贴子。

因为我的是由于使用代码才会出现这种问题所以,我只对styles.css中的.code段进行了修改.添加了代码:

word-break:break-all;
overflow:auto;
width: 500px;

问题搞定.

因为网络的原因,最近在博客上提交评论或留言的时候老是提示“没有权限”或者“超时”的问题,从“生活笔谈”那里找到这篇文章,给自己用下,正好解决下这个问题,添加在发表文章、评论及留言时将内容自动复制到剪贴板这一功能。具体步骤如下:

第一步:修改messageform.js,查找到:

theForm.submit()

在其上添加:

saveToClipBoard();

然后再在文档末尾添加:

function saveToClipBoard(){
var isCopy, theForm;
isCopy=document.all.iscopy.checked;
theForm=document.inputform;
if(isCopy==true){
clipboardData.setData(“Text”,theForm.message.value);
}
}

第二步:修改article.asp,查找到:

<input name=”e_smilies” type=”checkbox” value=”true”<%if(objArticle.ubbFlags!=”html” && objArticle.ubbFlags.substr(4,1)==”1″) write(” checked=\”checked\”")%> /> <%=lang["e_smilies"]%>

修改成:

<input name=”e_smilies” type=”checkbox” value=”true”<%if(objArticle.ubbFlags!=”html” && objArticle.ubbFlags.substr(4,1)==”1″) write(” checked=\”checked\”")%> /> <%=lang["e_smilies"]%><br />
<input name=”iscopy” type=”checkbox” value=”true” checked=”checked” />自动复制

第三步:修改global.asp,查找到:

<input name=”comm_hidden” type=”checkbox” value=”true”<%if(bHidden) write(” checked=\”checked\”")%> /> <%=lang["comm_hidden"]%>

在其上面添加:

<input name=”iscopy” type=”checkbox” value=”true” checked=”checked” />自动复制<br />

然后再查找到:

<input type=”submit” name=”btnSubmit” value=” <%=lang["post_comment"]%> ” onclick=”this.disabled=true;document.inputform.submit();” class=”button” />

修改成:

<input type=”submit” name=”btnSubmit” value=” <%=lang["post_comment"]%> ” onclick=”this.disabled=true;saveToClipBoard();document.inputform.submit();” class=”button” />