Firefox:Dive Into Greasemonkey/5.7. Case study: Zoom Textarea
Mozilla中文Wiki
您的位置:Dive Into Greasemonkey → 实例研究 → 实例研究: Zoom Textarea
添加一些用来放大文本域的按钮
Zoom Textarea 通过改变网页的表单来实现在每个 <textarea> 元素(用于输入多行文本)之前添加一个工具栏。它能让您放大或缩小 <textarea> 中文本的大小,而且不会改变页面中其他部分的样式。这些按钮也可以完全用键盘来操作:用Tab键选择,用回车键代替鼠标的单击。(但是实际使用时并不像听起来那样方便)。
例子: zoomtextarea.user.js (http://diveintogreasemonkey.org/download/zoomtextarea.user.js)
// ==UserScript==
// @name Zoom Textarea
// @namespace http://diveintogreasemonkey.org/download/
// @description add controls to zoom textareas
// @include *
// ==/UserScript==
var textareas, textarea;
textareas = document.getElementsByTagName('textarea');
if (!textareas.length) { return; }
function textarea_zoom_in(event) {
var link, textarea, s;
link = event.currentTarget;
textarea = link._target;
s = getComputedStyle(textarea, "");
textarea.style.width = (parseFloat(s.width) * 1.5) + "px";
textarea.style.height = (parseFloat(s.height) * 1.5) + "px";
textarea.style.fontSize = (parseFloat(s.fontSize) + 7.0) + 'px';
event.preventDefault();
}
function textarea_zoom_out(event) {
var link, textarea, s;
link = event.currentTarget;
textarea = link._target;
s = getComputedStyle(textarea, "");
textarea.style.width = (parseFloat(s.width) * 2.0 / 3.0) + "px";
textarea.style.height = (parseFloat(s.height) * 2.0 / 3.0) + "px";
textarea.style.fontSize = (parseFloat(s.fontSize) - 7.0) + "px";
event.preventDefault();
}
function createButton(target, func, title, width, height, src) {
var img, button;
img = document.createElement('img');
img.width = width;
img.height = height;
img.style.borderTop = img.style.borderLeft = "1px solid #ccc";
img.style.borderRight = img.style.borderBottom = "1px solid #888";
img.style.marginRight = "2px";
img.src = src;
button = document.createElement('a');
button._target = target;
button.title = title;
button.href = '#';
button.onclick = func;
button.appendChild(img);
return button;
}
for (var i = 0; i < textareas.length; i++) {
textarea = textareas[i];
textarea.parentNode.insertBefore(
createButton(
textarea,
textarea_zoom_in,
'Increase textarea size',
20,
20,
'data:image/gif;base64,'+
'R0lGODlhFAAUAOYAANPS1tva3uTj52NjY2JiY7KxtPf3%2BLOys6WkpmJiYvDw8fX19vb'+
'296Wlpre3uEZFR%2B%2Fv8aqpq9va3a6tr6Kho%2Bjo6bKytZqZml5eYMLBxNra21JSU3'+
'Jxc3RzdXl4emJhZOvq7KamppGQkr29vba2uGBgYdLR1dLS0lBPUVRTVYB%2Fgvj4%2BYK'+
'Bg6SjptrZ3cPDxb69wG1tbsXFxsrJy29vccDAwfT09VJRU6uqrFlZW6moqo2Mj4yLjLKy'+
's%2Fj4%2BK%2Busu7t783Nz3l4e19fX7u6vaalqNPS1MjHylZVV318ftfW2UhHSG9uccv'+
'KzfHw8qqqrNPS1eXk5tvb3K%2BvsHNydeLi40pKS2JhY2hnalpZWlVVVtDQ0URDRJmZm5'+
'mYm11dXp2cnm9vcFxcXaOjo0pJSsC%2FwuXk6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'+
'H5BAAAAAAALAAAAAAUABQAAAeagGaCg4SFhoeIiYqKTSQUFwgwi4JlB0pOCkEiRQKKRxM'+
'gKwMGDFEqBYpPRj4GAwwLCkQsijwQBAQJCUNSW1mKSUALNiVVJzIvSIo7GRUaGzUOPTpC'+
'igUeMyNTIWMHGC2KAl5hCBENYDlcWC7gOB1LDzRdWlZMAZOEJl83VPb3ggAfUnDo5w%2F'+
'AFRQxJPj7J4aMhYWCoPyASFFRIAA7'),
textarea);
textarea.parentNode.insertBefore(
createButton(
textarea,
textarea_zoom_out,
'Decrease textarea size',
20,
20,
'data:image/gif;base64,'+
'R0lGODlhFAAUAOYAANPS1uTj59va3vDw8bKxtGJiYrOys6Wkpvj4%2BPb29%2FX19mJiY'+
'%2Ff3%2BKqqrLe3uLKytURDRFpZWqmoqllZW9va3aOjo6Kho4KBg729vWJhZK%2BuskZF'+
'R4B%2FgsLBxHNydY2Mj%2Ff396amptLS0l9fX9fW2dDQ0W1tbpmZm8DAwfT09fHw8n18f'+
'uLi49LR1V5eYOjo6VBPUa6tr769wEhHSNra20pJStPS1KuqrNPS1ZmYm%2B7t77Kys8rJ'+
'y%2Fj4%2BaSjpm9uca%2BvsMjHyqalqHRzdVJRU8PDxVRTVcvKzc3Nz0pKS9rZ3evq7MC'+
'%2FwsXFxp2cnnl4e1VVVu%2Fv8ba2uM7Oz29vcbu6vZqZmnJxc9vb3PHx8uXk5mhnamJh'+
'Y1xcXZGQklZVV29vcHl4eoyLjKqpq6Wlpl1dXuXk6AAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAACH5BAAAAAAALAAAAAAUABQAAAeZgGaCg4SFhoeIiYqKR1IWVgcyi4JMBiQqA0heQgG'+
'KQTFLPQgMCVocBIoNNqMgCQoDVReKYlELCwUFI1glEYorOgopWSwiTUVfih8dLzRTKA47'+
'Ek%2BKBGE8GEAhFQYuPooBOWAHY2ROExBbSt83QzMbVCdQST8Ck4QtZUQe9faCABlGrvD'+
'rB4ALDBMU%2BvnrUuOBQkE4NDycqCgQADs%3D'),
textarea);
textarea.parentNode.insertBefore(
document.createElement('br'),
textarea);
}
上面的代码看起来很复杂,但是有它特殊的原因:中间部分包含有大量乱码一样的字符串.那些是URI(全局资源标志符(Uniform Resource Identifier)) 数据,很容易生成它们。但真正复杂复杂的地方不是这里。
首先,我获取了页面中所有<textarea>元素的列表,更多的信息请参见操作所有具有特定属性的元素。如果页面中不包含任何 <textarea>元素,脚本也就没有必要继续执行,因此直接返回(return)。
textareas = document.getElementsByTagName('textarea');
if (!textareas.length) { return; }
现在,我们暂时换个话题。我们的“工具栏”看起来就是一行按钮。但是,每个按钮事实上都是一张看起来可以按下的图片,图片又链接到我们的 Javascript 函数。
由于我们要创建多个按钮(尽管这个用户脚本只有两个按钮,但是您能便利地扩展出更多功能),我创建了一个函数来把所有生成按钮的工作统一起来。
function createButton(target, func, title, width, height, src) {
createButton 函数有六个参数:
target
元素(element)对象变量,这个按钮所要控制的<textarea>元素.
func
函数对象变量,当用户用鼠标或键盘点击这个按钮时所调用的 Javascript 函数。
title
字符型变量,为用户把鼠标移动到按钮上时显示的提示文字.
width
整数型变量,为按钮的宽度,它应该与 src 所给出的图形的实际尺寸相符.
height
整数型变量,为按钮的高度,它应该与 src 所给出的图形的实际尺寸相符.
src
字符串型变量,为URL,路径或者数据:按钮图形的URI.
创建一个按钮分为两步,首先创建一个<img>元素,接着在其外创建一个<a>元素.
我调用 document.createElement 来创建<img>元素,并且设置了包括样式在内的一些属性。更多的信息请参见“设置元素样式”
img = document.createElement('img');
img._target = target;
img.width = width;
img.height = height;
img.style.borderTop = img.style.borderLeft = "1px solid #ccc";
img.style.borderRight = img.style.borderBottom = "1px solid #888";
img.style.marginRight = "2px";
img.src = src;
这里有一个很酷的技巧,您可以使用下面的语法同时为两个属性赋上相同的值:
img.style.borderTop = img.style.borderLeft = "1px solid #ccc";
OK,接下来第二步是创建链接(一个<a>元素),然后把<img>元素放到链接里面。
button = document.createElement('a');
button._target = target;
button.title = title;
button.href = '#';
button.onclick = func;
button.appendChild(img);
我想指出两点。第一,我需要给链接分配一个伪造的 href 属性,否则 Firefox 会把它当作命名锚点而且不会把它加到可以用Tab访问的索引中(例如 您不能用 Tab 键访问他, 它也就无法用键盘访问)。 第二,我设置 _target 属性为<textarea>的目标引用。这对于Javascript来讲是完全合法的;您能给任一对象创建新的属性,只需要给此属性赋值。稍后我将在 onclick 事件句柄(handler)中访问自定义的 _target 属性。
现在让我们跳回到 onclick 句柄自身。每个句柄(handler)都是一个具有一个参数的函数,事件(event)。
function textarea_zoom_in(event)
事件对象有很多属性,但现在我只对一个感兴趣,那就是:currentTarget。
link = event.currentTarget;
如果你阅读过references/objref/Event.html 事件对象的文档 (http://www.xulplanet.com/),您应该看到这里有一些与目标相关的属性,包含一个简单的,叫做 target。您可以尝试使用 event.target 来获取到已点击过的链接的引用,但是它运作(在我看来)是不一致的。当用户用tab键移动到按钮就上然后按回车,event.target 就是链接,但是当用户用鼠标点击按钮,event.target 是链接中的图片!我确定有对这一问题的合理解释,但是它超出了我对 DOM 事件模型的理解水平。无论如何,event.currentTarget 在所有示例中都返回了链接,所以我使用 event.currentTarget。
接下来,我获得了对 <textarea> 的引用。事实上我已经开始缩放了,通过我在创建按钮时设置的 _target 自定义属性。
textarea = link._target;
现在真正有趣的开始。(并且您认为您已经已经从中获得乐趣!)我需要获取 <textarea> 当前的尺寸和字体大小,这样我才能把它们变得更大。简单的从 textarea.style (textarea.style.width, textarea.style.height, and textarea.style.fontSize) 中获得这些属性是不可行的,也因为只有在页面上已在样式属性中定义了 <textarea> 时才能获取这些属性。但这不是我想要的;我要获取当前的真正样式。为了达到这个目的,我使用了 getComputedStyle 。 更多请看获取元素样式。
s = getComputedStyle(textarea, ""); textarea.style.width = (parseFloat(s.width) * 1.5) + "px"; textarea.style.height = (parseFloat(s.height) * 1.5) + "px"; textarea.style.fontSize = (parseFloat(s.fontSize) + 7.0) + 'px';
最后,您还记得我在添加按钮链接时设置的伪造的 href 属性吗?它们用来确保键盘的可访问性。好了,它现在已经变成烦恼了,因为在 Firefox 完成 执行 onclick 句柄后,它会尝试追随那个链接。当链接指向一个不存在的锚点是,Firefox就会跳向页面的顶端,而不管按钮在哪里。这很令人讨厌,我要禁止它,我需要在完成我的 onclick 句柄前调用 event.preventDefault()
event.preventDefault();
脚本的剩余部分是容易理解的。我遍历了所有的 <textarea> 元素,为他们创建了缩放按钮(每个按钮都有 onclick 句柄和按钮图像),然后在 <textarea> 前插入这些缩放按钮。对于每个图片,我使用了data: URI 来建立 inline 图像,虽有用户不需要访问中心服务器来获取按钮图片。请看在元素前插入新内容和插入外部图片
for (var i = 0; i < textareas.length; i++) {
textarea = textareas[i];
textarea.parentNode.insertBefore(
createButton(
textarea,
textarea_zoom_in,
'Increase textarea size',
20,
20,
'data:image/gif;base64,'+
'R0lGODlhFAAUAOYAANPS1tva3uTj52NjY2JiY7KxtPf3%2BLOys6WkpmJiYvDw8fX19vb'+
'296Wlpre3uEZFR%2B%2Fv8aqpq9va3a6tr6Kho%2Bjo6bKytZqZml5eYMLBxNra21JSU3'+
'Jxc3RzdXl4emJhZOvq7KamppGQkr29vba2uGBgYdLR1dLS0lBPUVRTVYB%2Fgvj4%2BYK'+
'Bg6SjptrZ3cPDxb69wG1tbsXFxsrJy29vccDAwfT09VJRU6uqrFlZW6moqo2Mj4yLjLKy'+
's%2Fj4%2BK%2Busu7t783Nz3l4e19fX7u6vaalqNPS1MjHylZVV318ftfW2UhHSG9uccv'+
'KzfHw8qqqrNPS1eXk5tvb3K%2BvsHNydeLi40pKS2JhY2hnalpZWlVVVtDQ0URDRJmZm5'+
'mYm11dXp2cnm9vcFxcXaOjo0pJSsC%2FwuXk6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC'+
'H5BAAAAAAALAAAAAAUABQAAAeagGaCg4SFhoeIiYqKTSQUFwgwi4JlB0pOCkEiRQKKRxM'+
'gKwMGDFEqBYpPRj4GAwwLCkQsijwQBAQJCUNSW1mKSUALNiVVJzIvSIo7GRUaGzUOPTpC'+
'igUeMyNTIWMHGC2KAl5hCBENYDlcWC7gOB1LDzRdWlZMAZOEJl83VPb3ggAfUnDo5w%2F'+
'AFRQxJPj7J4aMhYWCoPyASFFRIAA7'),
textarea);
textarea.parentNode.insertBefore(
createButton(
textarea,
textarea_zoom_out,
'Decrease textarea size',
20,
20,
'data:image/gif;base64,'+
'R0lGODlhFAAUAOYAANPS1uTj59va3vDw8bKxtGJiYrOys6Wkpvj4%2BPb29%2FX19mJiY'+
'%2Ff3%2BKqqrLe3uLKytURDRFpZWqmoqllZW9va3aOjo6Kho4KBg729vWJhZK%2BuskZF'+
'R4B%2FgsLBxHNydY2Mj%2Ff396amptLS0l9fX9fW2dDQ0W1tbpmZm8DAwfT09fHw8n18f'+
'uLi49LR1V5eYOjo6VBPUa6tr769wEhHSNra20pJStPS1KuqrNPS1ZmYm%2B7t77Kys8rJ'+
'y%2Fj4%2BaSjpm9uca%2BvsMjHyqalqHRzdVJRU8PDxVRTVcvKzc3Nz0pKS9rZ3evq7MC'+
'%2FwsXFxp2cnnl4e1VVVu%2Fv8ba2uM7Oz29vcbu6vZqZmnJxc9vb3PHx8uXk5mhnamJh'+
'Y1xcXZGQklZVV29vcHl4eoyLjKqpq6Wlpl1dXuXk6AAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'+
'AAACH5BAAAAAAALAAAAAAUABQAAAeZgGaCg4SFhoeIiYqKR1IWVgcyi4JMBiQqA0heQgG'+
'KQTFLPQgMCVocBIoNNqMgCQoDVReKYlELCwUFI1glEYorOgopWSwiTUVfih8dLzRTKA47'+
'Ek%2BKBGE8GEAhFQYuPooBOWAHY2ROExBbSt83QzMbVCdQST8Ck4QtZUQe9faCABlGrvD'+
'rB4ALDBMU%2BvnrUuOBQkE4NDycqCgQADs%3D'),
textarea);
textarea.parentNode.insertBefore(
document.createElement('br'),
textarea);
}
下载
- zoomtextarea.user.js (http://diveintogreasemonkey.org/download/zoomtextarea.user.js)
相关文章
- Event documentation (http://www.xulplanet.com/references/objref/Event.html)
参见
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 510
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1367
Strict Standards: Non-static method Namespace::getTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1387
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 99
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1437
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1439
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1439
Strict Standards: Non-static method Namespace::getImage() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1505
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 775
Strict Standards: Non-static method Namespace::getTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 776
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 776
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 99
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Title::makeTitle() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 718
Strict Standards: Non-static method Title::makeName() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 138
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be assigned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 718
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 900
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 510
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1367
Strict Standards: Non-static method Namespace::getTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1387
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 99
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1437
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1439
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1439
Strict Standards: Non-static method Namespace::getImage() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1505
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1023
Strict Standards: Non-static method Namespace::getTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1024
Strict Standards: Non-static method Namespace::getUser() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1024
Strict Standards: Non-static method Namespace::isTalk() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 99
Strict Standards: Non-static method Namespace::getSpecial() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/languages/Language.php on line 1456
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1450
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Non-static method Title::newFromText() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
Strict Standards: Non-static method Namespace::getCanonicalIndex() should not be called statically, assuming $this from incompatible context in /home/mozcn/html/mediawiki-1.3.18/includes/Title.php on line 695
Notice: Only variable references should be returned by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Namespace.php on line 138
Strict Standards: Only variables should be passed by reference in /home/mozcn/html/mediawiki-1.3.18/includes/Skin.php on line 1452
![[首页]](/stylesheets/images/wiki.png)