//console.log(index+"."+faviconUrl+"--"+II);
if (II <= 5) {
// 先用父节点判断一下是否存在img
let tmpHTML = targetNode.innerHTML;
let pos = tmpHTML.indexOf("fav-url")
& tmpHTML.indexOf("favurl")
& tmpHTML.indexOf("tit-ico")
& tmpHTML.indexOf("img_fav rms_img")
& tmpHTML.indexOf("c-tool-")
& tmpHTML.indexOf("span class=\"c-icon c-icon-")
& tmpHTML.indexOf("img class=\"xA33Gc");
if (pos > -1) {
// console.log("已有图片:");
curNode.setAttribute("ac_faviconStatus", "-2");
continue;
}
targetNode = targetNode.querySelector(curSite.FaviconAddTo);
// 特殊处理BING
// if (curSite.SiteTypeID === SiteType.BING) curNode = curNode.querySelector("h2");
//
https://api.byi.pw/favicon/?url=???? 不稳定
//http://"+faviconUrl+"/cdn.ico?defaulticon=
http://soz.im/favicon.ico 不稳定
//
https://www.xtwind.com/api/index.php?url=????//
https://statics.dnspod.cn/proxy_favicon/_/favicon?domain=sina.cn//
http://www.google.com/s2/favicons?domain=764350177.lofter.comlet host = faviconUrl.replace(/[^.]+\.([^.]+)\.([^.]+)/, "$1.$2");
if (targetNode.querySelector(".AC-faviconT") === null && host.length > 3) {
let insNode = document.createElement("img");
// curNode = curNode.children[0] || curNode.firstChild ; // firstChild容易遇到text对象
curNode.setAttribute("ac_faviconStatus", "1");
// curNode.insertBefore(insNode, curNode.firstChild);
insNode.className = "AC-faviconT";
insNode.setAttribute("referrerpolicy", "no-referrer");
insNode.style = "position:relative;z-index:1;vertical-align:sub;height:16px;width:16px;margin-right:5px;margin-bottom: 2px;user-select:none;";
insNode.src = "
https://favicon.yandex.net/favicon/v2/" + (curNode.href || host); // MARK yandex支持这种查询规则
insNode.setAttribute("faviconID", "0");
insNode.setAttribute("ondragstart", "return false;") // 禁止拖动图片-避免拖错了
// curNode.innerHTML = insNode.outerHTML + curNode.innerHTML;
// curNode.insertAdjacentHTML("afterEnd", insNode.innerHTML);
let beforeIndex = 0;
if (targetNode.childNodes[beforeIndex].className === "AC-CounterT") {
beforeIndex = 1;
}
targetNode.insertBefore(insNode, targetNode.childNodes[beforeIndex]);
(function (xcur) {
insNode.onload = function (env) {
let imgNode = xcur.querySelector(".AC-faviconT");
if ((imgNode || {}).naturalWidth < 10) {
imgNode.setAttribute("old-src", imgNode.src);
imgNode.src = ACConfig.defaultFaviconUrl;
}
imgNode.onload = "javascript:void(0);";
};
})(targetNode);
}
}
}
}
} else {
var checkNodes = document.querySelectorAll("#links_wrapper #links .results_links_deep");
for (let faNode of checkNodes) {
let faviconNode = faNode.querySelector(".result__icon img");
let beforeNode = faNode.querySelector(".result__title a");
if(faviconNode && beforeNode){
faviconNode.style = "vertical-align:middle;margin-right:5px;";
beforeNode.parentNode.insertBefore(faviconNode, beforeNode);
}
}
}
}
function InsertSettingMenu() {
if ((curSite.SiteTypeID !== SiteType.OTHERS) && document.querySelector("#myuser") === null) {
try {
let parent = document.querySelector("#u, #gb>div>div>div, #b_header>#id_h, .top-bar .sogou-set-box, #header_wrapper .js-hl-button, body[doge] #header_wrapper #header"); //baidu; google; bing; 搜狗
parent.style = "width: auto;";
let userAdiv = document.createElement("div");
userAdiv.id = "myuser";
userAdiv.innerHTML = `<input type='submit' class='myuserconfig' value='${AllData.lan.use.menu_text}'/><span class='ac-newversionDisplay' style='background-color: red;float: left;height: 8px;width: 8px;border-radius: 4px;display:${(CONST.hasNewFuncNeedDisplay ? "unset" : "none")}'> </span>`;
parent.insertBefore(userAdiv, parent.childNodes[0]);
document.querySelector("#myuser .myuserconfig").addEventListener("click", function (e) {
return ACtoggleSettingDisplay(e);
}, true);
} catch (e) {
}
}
}
}(); // 读取个人设置信息