站长论坛

标题: 将html 转成 ubb代码的小脚本 [打印本页]

作者: tzlink    时间: 2007-10-6 10:03
标题: 将html 转成 ubb代码的小脚本
<script Language="JavaScript1.2">
//coded by windy_sk <windy_sk@126.com> 20031218

function html_trans(str) {
        str = str.replace(/\r/g,"");
        str = str.replace(/on(load|click|dbclick|mouseover|mousedown|mouseup)="[^"]+"/ig,"");
        str = str.replace(/<script[^>]*?>([\w\W]*?)<\/script>/ig,"");
       
        str = str.replace(/<a[^>]+href="([^"]+)"[^>]*>(.*?)<\/a>/ig,"\n$2\n");
       
        str = str.replace(/<font[^>]+color=([^ >]+)[^>]*>(.*?)<\/font>/ig,"\n[color=$1]$2\n");
       
        str = str.replace(/<img[^>]+src="([^"]+)"[^>]*>/ig,"\n\n");
       
        str = str.replace(/<([\/]?)b>/ig,"[$1b]");
        str = str.replace(/<([\/]?)strong>/ig,"[$1b]");
        str = str.replace(/<([\/]?)u>/ig,"[$1u]");
        str = str.replace(/<([\/]?)i>/ig,"[$1i]");
       
        str = str.replace(/ /g," ");
        str = str.replace(/&/g,"&");
        str = str.replace(/"/g,"\"");
        str = str.replace(/&lt;/g,"<");
        str = str.replace(/&gt;/g,">");
       
        str = str.replace(/<br>/ig,"\n");
        str = str.replace(/<[^>]*?>/g,"");
        str = str.replace(/\[url=([^\]]+)\]\n(\[img\]\1\[\/img\])\n\[\/url\]/g,"$2");
        str = str.replace(/\n+/g,"\n");
       
        return str;
}

function trans(){
        var str = "";
        rtf.focus();
        rtf.document.body.innerHTML = "";
        rtf.document.execCommand("paste");
        str = rtf.document.body.innerHTML;
        if(str.length == 0) {
                alert("剪切版不存在超文本数据!");
                return "";
        }
        return html_trans(str);
}
</script>

<textarea style="width:100%; height:200px" id="text" class="textarea" onbeforepaste="if(document.getElementById('x_paste').checked){window.clipboardData.setData('text',trans());this.focus();}"></textarea><br />
<iframe scrolling="no" id="rtf" src="about:blank" MARGINHEIGHT="0" MARGINWIDTH="0" style="width:0px; height:0px;"></iframe>
<input type="button" value="转换剪切版超文本数据" onclick="document.getElementById('text').value += trans()">
<input type="checkbox" id="x_paste"> <label for="x_paste">启用超文本粘贴转换</label>
<script>
rtf.document.designMode="On";
</script>


使用说明

在别的网页中选择HTML内容,比如有链接,或者颜色的拷贝。
点击运行代码按钮
直接点击转换
出来的就是论坛专用的 ubb 代码了。




欢迎光临 站长论坛 (http://tzlink.com/bbs/) Powered by Discuz! X3.2