Project1

标题: 很诡异的BUG~~ [打印本页]

作者: 「旅」    时间: 2011-3-6 09:35
标题: 很诡异的BUG~~
本帖最后由 「旅」 于 2011-3-6 09:36 编辑

我用谷歌浏览器,手动复制贴子里的脚本代码到游戏里,然后会出现错误喵。
经过测试,是因为"空格"的问题~~~是不是应该提示一下?

ps.用世界之窗没有问题~~~
作者: 315038639    时间: 2011-3-6 09:41
游戏跟浏览器有蛤蟆关系?


315038639于2011-3-6 09:57补充以下内容:
谷歌不允许点击复制……(很大义灭亲的防御措施)
手动复制我这里没有问题啊(选中后按Ctrl+C)只不过会把前面的行数也复制而已,辛苦点一点点删除吧……
作者: DeathKing    时间: 2011-3-6 11:29
chrome , copy and paste (Ctrl + C, Ctrl + V), no problem.
作者: fux2    时间: 2011-3-6 11:48
回复 「旅」 的帖子

使用独立核心的浏览器貌似都有这个问题,OPERA也是,复制的时候每一行结尾会多一个/0字符
作者: david50407    时间: 2011-3-6 18:06
换了吧 脚本框
MS Mozilla Bespin的不错
作者: 苏小脉    时间: 2011-3-10 07:09
测了一下,这些空格都是 UTF-8 的不间断空格字符,Unicode 码点是 U+00A0,UTF-8 编码后是 \xC2\XA0,而 Ruby 的词法分析并不把这个字符当作空白符,所以会产生语法错误。

Chrome 9.0 似乎只在 <textarea> 标签的 value 中出现 &nbsp; 这个 HTML 用来表示不间断空格的实体时才会把 U+00A0 复制到剪切板。IE 8 则是直接把 &nbsp; 解析为普通的空格(ASCII 中的 \x20)了,所以 IE 8 复制到剪切板中的内容可以被 Ruby 词法分析器接受。

服务器端(弄新的这个代码框的人)可以:在 <textarea> 中使用普通空格,而不是 &nbsp;。如果是通过 JavaScript 操纵的 <textarea>,那就不要在 JavaScript 字符串中使用 \xa0(也就是下面的 \240),这等同于 u+00A0。<textarea> 中的普通空格会保留为 HTML 源中的原有状态。也可以考虑使用 <pre> 或者 <div>,个人感觉比 <textarea> 灵活,缺点是要手动做一个特殊字符的转换。

Chrome 客户端治标方法:
在有代码框的页面,将下列代码输入到浏览器地址栏并回车(或者添加到收藏夹点击运行):

javascript: window.open().document.write("<textarea cols='100' rows='30'>" + document.getElementById("code0").value.replace(/\240/g, " ") + "</textarea>");

其中 code0 表示是当前主题的第一个代码框,code1 是第二个,以此类推。复制弹出的页面中文本框中的代码应该就没有问题了。

作者: yangff    时间: 2011-3-19 22:04
苏小脉 发表于 2011-3-10 07:09
测了一下,这些空格都是 UTF-8 的不间断空格字符,Unicode 码点是 U+00A0,UTF-8 编码后是 \xC2\XA0,而 Ru ...

哎6我正头疼这个呢,DZ会在所有帖子内容计算完后执行一段代码把\n换成<br />
hightlight加上颜色
空格解析&nbsp;
使用textarea是因为这个比较灵活而且占用版面较小
蛋疼的重影是由于各个浏览器对于网页的原点计算的偏差
Mozilla Bespin的效率和兼容性均不乐观。
("<textarea cols='100' rows='30'>" + document.getElementById("code0").value.replace(/\240/g, " ") + "</textarea>");
比如这段带吗就算我写在程序里面等到dz解析器运行完毕他就会变成
("<textarea cols='100' rows='30'>" + document.getElementById("code0").value.replace(/\240/g, " &nbsp;") + "</textarea>");

甚至我打js代码都不敢换行不然就会

<script><br/>
xxxxxxx<br/>
xxxxxxx<br/>
</script><br/>

飘飘欲仙的解释器啊………………
作者: 苏小脉    时间: 2011-3-23 14:17
yangff 发表于 2011-3-19 22:04
哎6我正头疼这个呢,DZ会在所有帖子内容计算完后执行一段代码把\n换成
hightlight加上颜色
空格解析&nbsp ...

那 DZ 默认的代码框是如何处理的呢?实在不行就 Hack 一下吧 XD
作者: yangff    时间: 2011-3-23 15:59
苏小脉 发表于 2011-3-23 14:17
那 DZ 默认的代码框是如何处理的呢?实在不行就 Hack 一下吧 XD

默认是div啊蛋魂 = =
作者: 苏小脉    时间: 2011-3-24 04:50
yangff 发表于 2011-3-23 15:59
默认是div啊蛋魂 = =
yangff 发表于 2011-3-23 15:59
默认是div啊蛋魂 = =


那何不用 <div>?占用版面的大小是 CSS 控制的,莫非在这方面 DZ 也有专权行为?
作者: yangff    时间: 2011-3-24 21:35
苏小脉 发表于 2011-3-24 04:50
那何不用 ?占用版面的大小是 CSS 控制的,莫非在这方面 DZ 也有专权行为? ...

帖子的哐哐不会自动变大
作者: 苏小脉    时间: 2011-3-25 00:09
yangff 发表于 2011-3-24 21:35
帖子的哐哐不会自动变大

帖子的框框?你是指代码框?<div> 的高度默认就是随内容而变化的,如果对其加一个 max-height 属性以及 overflow: auto,就会在预算高度超过该值时固定视口的高度。不过很多客户端对 max-height(以及 min-height)的支持不好,尤其是 IE6,如果要兼容遗留客户端,可以通过 PHP/JavaScript 动态地做一个判断,内容超过大小时加一个 height 属性。
作者: yangff    时间: 2011-3-25 21:47
苏小脉 发表于 2011-3-25 00:09
帖子的框框?你是指代码框? 的高度默认就是随内容而变化的,如果对其加一个 max-height 属性以及 overfl ...

DZ的框框不会变大- -
作者: 苏小脉    时间: 2011-3-25 23:04
yangff 发表于 2011-3-25 21:47
DZ的框框不会变大- -

学生不明白,DZ的框框是指什么? O_o
作者: yangff    时间: 2011-3-26 10:14
苏小脉 发表于 2011-3-25 23:04
学生不明白,DZ的框框是指什么? O_o

显示贴子内容的框框不会撑开,会挡住下面的帖子




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1