除了豆知识一无所有

Boston_Baked_Beans_in_Concord,_Mass_2012-0193

1、真正禁用迅雷基础服务
迅雷极速版算是简洁,但会给系统增加一个叫做“XLServicePlatform”的服务。
该服务虽然可以关闭并禁用,但只要再次运行迅雷,立马变自动启用。
而用空白文件替换下面这个文件可以彻底摆脱掉该服务:

C:\Program Files(x86)\Common Files\Thunder Network\ServicePlatform\XLSP.dll

(注意:升级迅雷后可能需要再来一次~)

2、强制离开家庭组
win8/8.1 下的家庭组各种脱力,更换网络后往往还无法离开。
可以清空以下文件夹后,重启电脑,再尝试离开操作。

C:\Windows\ServiceProfiles\LocalService\AppData\Roaming\PeerNetworking

(然而并没有什么卵用)

3、修复 提示错误
最近的项目抓取 X3.2 论坛的订阅源失败,用 打开,提示如下:

This page contains the following errors:
error on line 2 at column 1: Extra content at the end of the document
Below is a rendering of the page up to the first error.

查看源代码,发现在 前输出了 的错误提示:

Deprecated:
mysql_escape_string(): This function is deprecated; use mysql_real_escape_string() instead.

看来之前的提示是 自身行为,表示未能正确识别为订阅源(非单顶层结构)。
找到“source/module/forum/forum_.”,注释掉第 13 行的错误输出就完事啦。

//error_reporting(E_ALL ^ E_NOTICE);

4、JS 循环中正确使用 AJAX
JS 循环执行完毕了,而 的异步请求还未结束,操作无法继续。
最直接的解决当然是把 的异步设为否(async: false)。
但更好的方法则是把参与循环的参数加入闭包(closure):

for (var i .....) {
  (function (i) {
    async(function() {
      use(i);
    });
  })(i);
}

5、AJAX 上传图片
最初是为传递 XML 之类的文本服务的,想要通过它上传图片,
就必须将图片转变为表单内容进行提交,同时做一些额外的设定:

data: new FormData(this),
contentType: false,
cache: false,
processData:false,

6、图片格式正则

(/\.(gif|jpg|jpeg|tiff|png)$/i).test(filename)

7、tinyMCE 上传图片
原理是在 初始化时设定“file_browser_callback”,插入图片的窗口会增加一个按钮。
我们可以设置点击该按钮后通过 去模拟点击一个隐藏的上传图片的输入框。
同时设置该输入框选择上传的文件后,直接通过 AJAX 提交包含该隐藏输入框的表单,并返回上传后图片地址。
最后将上传后图片地址放入最开始插入图片窗口的地址栏,点击确定就插入了上传后的图片。
(以下仅 和 input 部分,未包含服务器及最后赋值 js 代码)

    tinymce.init({
        file_browser_callback: function(field_name, url, type, win) {
            if(type=='image') $('#my_form input').click();
        }
    });
<input name="image" type="file"
    onchange="$('#my_form').ajaxSubmit({ success: function(d){eval(d);} });this.value='';"

8、通过 AJAX 提交 tinyMCE 内容
在使用 AJAX 提交表单前,首先让 保存内容。

tinyMCE.triggerSave();

9、用 JS 在字符串中插入另一字符串

var output = [a.slice(0, position), b, a.slice(position)].join('');

10、用 JS 改变页面标题

$(document).attr('title', 'new title');

其它获取方式:

$(document).find("title").text();
document.getElementsByTagName("title")[0].innerHTML;

11、事件触发调用其它 JS 文件

$.getJSON(url + '?callback=?');

或者

$.getScript(url);

【相关资料】
0、Boston baked beans◃wiki

发表评论

邮箱地址不会被公开。 必填项已用*标注