悟空网盟手机发送专用链脚本

//e.g.:
//var UnionUid = "10009";
//var UnionAppend = true;
//var UnionDownPath = "download.asp";
//var UnionImagePath = "/upload/";
//var UnionLinkPos = false;
//var UnionHTMLInsert = " | ";
//var UnionTitle = "爱在西元前";
//var UnionLinkStyle = "<font color=red>[$title]发送到手机</font>";
//var UnionLinkOpen = "url";
//Union5k3g();

function Union5k3g(){
    var unionUid = typeof(UnionUid)!="undefined" ? UnionUid : "0";    //联盟ID
    var unionAppend = typeof(UnionAppend)!="undefined" ? UnionAppend : true;    //true 部分代码化,false 全部代码化
    var unionDownPath = typeof(UnionDownPath)!="undefined" ? UnionDownPath : "";    //下载链接特征字符串
    var unionImagePath = typeof(UnionImagePath)!="undefined" ? UnionImagePath : "http://"; //预览图地址特征字符串
    var unionLinkPos = typeof(UnionLinkPos)!="undefined" ? UnionLinkPos : false; //手机发送链接放置位置。true 实际链接前,false 实际链接后。
    var unionHTMLInsert = typeof(UnionHTMLInsert)!="undefined" ? UnionHTMLInsert : " | "; //手机发送链接和实际链接间分隔符
    var unionTitle = typeof(UnionTitle)!="undefined" ? UnionTitle : "MMS"; //资源名称
    var unionLinkStyle = (typeof(UnionLinkStyle)!="undefined" ? UnionLinkStyle : "").replace("[$title]",unionTitle); //手机发送链接文字样式
    var unionLinkOpen = typeof(UnionLinkOpen)!="undefined" ? UnionLinkOpen : "url"; //打开链接方式。url 链接方式,open window.open方式
    
    if(unionUid=="0" || unionUid.length!=5)
    {
        alert("联盟ID格式不正确!");
        return;
    }
    
    function GetImgUrl(){
        if(unionImagePath.toLowerCase().indexOf("http://")>=0 || !UnionDownPath)return unionImagePath.toLowerCase();
        for(var i=0;i<document.images.length;i++)
        {
            if(document.images[i].src.toLowerCase().indexOf(unionImagePath)>=0)
            {
                return document.images[i].src.toLowerCase();
            }
        }
    }
    
    var arrLinks = [];
    for(var i=0;i<document.links.length;i++)arrLinks.push(document.links[i]);
    for(var i=0;i<arrLinks.length;i++)
    {
        var currentLink = arrLinks[i];
        var currentLinkHref = currentLink.href.toLowerCase();
        //Bug: FF跳行
        //if(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig.exec(currentLinkHref) != null || (unionDownPath && currentLinkHref.indexOf(unionDownPath.toLowerCase()) >= 0))
        if(currentLinkHref.match(/\.jar|\.jad|\.sis|\.sisx|\.txt|\.rar|\.zip/ig) || (unionDownPath && currentLinkHref.indexOf(unionDownPath.toLowerCase()) >= 0))
        {
            //创建链接对象
            var newLink = document.createElement("a");
            if(unionLinkStyle == "")newLink.innerHTML = currentLink.innerHTML;
            else newLink.innerHTML = unionLinkStyle;
            var unionURL = "http://code.5k3g.com/tl/picDIY/Sendgame.aspx?uid={0}&title={1}&fileurl={2}&imgurl={3}";
            unionURL = unionURL.replace("{0}",unionUid).replace("{1}",escape(unionTitle)).replace("{2}",escape(currentLinkHref)).replace("{3}",escape(GetImgUrl()));
            if(unionLinkOpen=="url")
            {
                newLink.href = unionURL;
                newLink.target = "_blank";
            }
            else
            {
                newLink.href = "#";
                //Bug: 所有弹出窗口unionURL一样
                //newLink.onclick = function(){window.open(unionURL,"","width=556,height=393");void(0);}
                eval("newLink.onclick = function(){window.open(\"" + unionURL + "\",\"\",\"width=556,height=393\");return false;}");
            }
            //创建文本对象
            //Bug: html失效
            //var textNode = document.createTextNode(unionHTMLInsert);
            var textNode = document.createElement("span");
            textNode.innerHTML = unionHTMLInsert;
            
            //显示链接
            if(unionAppend)
            {
                if(unionLinkPos)
                {
                    //Bug: 参数无效。
                    //document.body.insertBefore(newLink,currentLink);
                    //document.body.insertBefore(textNode,currentLink);
                    currentLink.parentNode.insertBefore(newLink,currentLink);
                    currentLink.parentNode.insertBefore(textNode,currentLink);
                }
                else
                {
                    //document.body.insertBefore(newLink,currentLink.nextSibling);
                    //document.body.insertBefore(textNode,currentLink.nextSibling);
                    currentLink.parentNode.insertBefore(newLink,currentLink.nextSibling);
                    currentLink.parentNode.insertBefore(textNode,currentLink.nextSibling);
                }
            }
            else
            {
                //document.body.replaceChild(newLink,currentLink);
                currentLink.parentNode.replaceChild(newLink,currentLink);
            }
        }
    }
}

IE(6.0)、FF(2.0)、Opera(9.27)下测试通过。

评论: 0 | 引用: 0 | 查看次数: 5159
发表评论
登录后再发表评论!