|
|
@ -40,7 +40,7 @@ namespace 齐越慧眼.UserControls |
|
|
|
|
|
|
|
web.JavascriptObjectRepository.Settings.LegacyBindingEnabled = true; |
|
|
|
|
|
|
|
web.JavascriptObjectRepository.Register("hyCoreModel", new CefAsyncJS(), BindingOptions.DefaultBinder); |
|
|
|
web.JavascriptObjectRepository.Register("hyCoreModel", new TaobaoCefAsyncJS(), BindingOptions.DefaultBinder); |
|
|
|
Main = this; |
|
|
|
} |
|
|
|
|
|
|
@ -79,11 +79,10 @@ namespace 齐越慧眼.UserControls |
|
|
|
{ |
|
|
|
lastUrl = e.Browser.MainFrame.Url; |
|
|
|
//开始单页查询
|
|
|
|
if (lastUrl.StartsWith("https://s.taobao.com/search")) |
|
|
|
if (lastUrl.StartsWith("https://s.taobao.com/search")|| lastUrl.StartsWith("https://search.jd.com/")) |
|
|
|
{ |
|
|
|
StartPage(); |
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -111,8 +110,27 @@ namespace 齐越慧眼.UserControls |
|
|
|
//判断是否加载完成
|
|
|
|
if (result.Success) |
|
|
|
{ |
|
|
|
AddOptionDiv(); |
|
|
|
CheckPageItem(); |
|
|
|
AddCss(); |
|
|
|
|
|
|
|
if (lastUrl.Contains("s.taobao.com")) |
|
|
|
{ |
|
|
|
AddTaoBaoOptionDiv(); |
|
|
|
CheckTaoBaoPageItem(); |
|
|
|
} |
|
|
|
|
|
|
|
if (lastUrl.Contains("search.jd.com")) |
|
|
|
{ |
|
|
|
AddJDOptionDiv(); |
|
|
|
//CheckJDPageItem();
|
|
|
|
web.ShowDevTools(); |
|
|
|
} |
|
|
|
|
|
|
|
//if (lastUrl.Contains("s.taobao.com"))
|
|
|
|
//{
|
|
|
|
// AddTaoBaoOptionDiv();
|
|
|
|
// CheckTaoBaoPageItem();
|
|
|
|
//}
|
|
|
|
|
|
|
|
lastUrl = string.Empty; |
|
|
|
break; |
|
|
|
} |
|
|
@ -123,12 +141,22 @@ namespace 齐越慧眼.UserControls |
|
|
|
t.Start(); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 添加jq操作类
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
private bool AddJquery() |
|
|
|
{ |
|
|
|
return DoJavaScript("var script=document.createElement('script'); script.type='text/javascript'; script.src='https://code.jquery.com/jquery-1.12.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script); ").isOk; |
|
|
|
} |
|
|
|
|
|
|
|
#region 淘宝代码
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 检测页面商品
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
private void CheckPageItem() |
|
|
|
private void CheckTaoBaoPageItem() |
|
|
|
{ |
|
|
|
var res = DoJavaScript(@"var ids=[]; $('div#mainsrp-itemlist .items .item .J_ItemPicA').each(function(){ids.push($(this).attr(""data-nid""))});return ids;"); |
|
|
|
|
|
|
@ -183,48 +211,135 @@ namespace 齐越慧眼.UserControls |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 添加jq操作类
|
|
|
|
/// 添加操作面板
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
private bool AddJquery() |
|
|
|
private bool AddTaoBaoOptionDiv() |
|
|
|
{ |
|
|
|
return DoJavaScript("var script=document.createElement('script'); script.type='text/javascript'; script.src='https://code.jquery.com/jquery-1.12.4.min.js'; document.getElementsByTagName('head')[0].appendChild(script); ").isOk; |
|
|
|
///添加js事件
|
|
|
|
DoJavaScript(@"
|
|
|
|
window.optClick= function (ele,type){ |
|
|
|
var itemid= $(ele).parent().parent().find(""a"").attr(""data-nid""); |
|
|
|
var infoDiv=$($(ele).parent().parent().parent().parent().find("".J_IconMoreNew"")); |
|
|
|
var price=infoDiv.find("".g_price"").text(); |
|
|
|
var sales=infoDiv.find("".deal-cnt"").text(); |
|
|
|
var title=infoDiv.find("".title"").text(); |
|
|
|
var img=$(ele).parent().parent().find(""img"").attr(""src""); |
|
|
|
hyCoreModel.setItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type}); |
|
|
|
}; |
|
|
|
");
|
|
|
|
|
|
|
|
return DoJavaScript(@"$('div#mainsrp-itemlist .items .item').find('.myitemState').remove();
|
|
|
|
$('div#mainsrp-itemlist .items .item .pic').before(' |
|
|
|
<div class=""myitemState""> |
|
|
|
<div class=""stateGraydiv""></div></div><div class=""myopdiv""> |
|
|
|
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)"">竞品</div> |
|
|
|
<div class=""bgZs"" style=""display:flex"" onclick=""optClick(this,2)"">海选</div> |
|
|
|
<div class=""bgPig"" style=""display:flex"" onclick=""optClick(this,1)"">淘汰</div> |
|
|
|
<div class=""bgGreen"" style=""display:flex"" onclick=""optClick(this,0)"">同款</div> |
|
|
|
</div> |
|
|
|
')").isOk;
|
|
|
|
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#region 京东代码
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 检测页面商品
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
private void CheckJDPageItem() |
|
|
|
{ |
|
|
|
var res = DoJavaScript(@"var ids=[]; $('div#mainsrp-itemlist .items .item .J_ItemPicA').each(function(){ids.push($(this).attr(""data-nid""))});return ids;"); |
|
|
|
|
|
|
|
List<string> itemIds = Newtonsoft.Json.JsonConvert.DeserializeObject<List<string>>(Newtonsoft.Json.JsonConvert.SerializeObject(res.result)); |
|
|
|
|
|
|
|
var result = ApiHelper.GetLabelByItemIds(itemIds, Models.ItemPlatform.Taobao); |
|
|
|
|
|
|
|
if (result.isOk) |
|
|
|
{ |
|
|
|
foreach (var item in result.datas) |
|
|
|
{ |
|
|
|
//判断是否团队过滤
|
|
|
|
if (item.IsFilter) |
|
|
|
{ |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""falseBg"")"); |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")"); |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
//判断是否集团过滤
|
|
|
|
if (item.HasFilter) |
|
|
|
{ |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div class=""smallfalseBg""></div>')"); |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (item.IsCompeting) |
|
|
|
{ |
|
|
|
//<div style=""width:20%;height:20%"" class=""bgYellow"">竞</div>
|
|
|
|
if ((int)BrowerControl.Main.DoJavaScript(@$"return $($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateYellow').length").result <= 0) |
|
|
|
{ |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').prepend('<div style=""width:20%;height:20%"" class=""stateYellow"">竞</div>')"); |
|
|
|
} |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")"); |
|
|
|
} |
|
|
|
|
|
|
|
if (item.IsScreening) |
|
|
|
{ |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""trueBg"")"); |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")"); |
|
|
|
} |
|
|
|
|
|
|
|
if (item.IsAdded) |
|
|
|
{ |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.myitemState').addClass(""popBg"")"); |
|
|
|
DoJavaScript($@"$($('div#mainsrp-itemlist .items .item').find('a[data-nid=""{item.GoodsId}""]').parent().parent()).find('.stateGraydiv').addClass(""divshow"")"); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 添加操作面板
|
|
|
|
/// </summary>
|
|
|
|
/// <returns></returns>
|
|
|
|
private bool AddOptionDiv() |
|
|
|
private bool AddJDOptionDiv() |
|
|
|
{ |
|
|
|
///添加js事件
|
|
|
|
DoJavaScript(@"
|
|
|
|
window.optClick= function (ele,type){ |
|
|
|
var itemid= $(ele).parent().parent().find(""a"").attr(""data-nid""); |
|
|
|
var infoDiv=$($(ele).parent().parent().parent().parent().find("".J_IconMoreNew"")); |
|
|
|
var price=infoDiv.find("".g_price"").text(); |
|
|
|
var sales=infoDiv.find("".deal-cnt"").text(); |
|
|
|
var title=infoDiv.find("".title"").text(); |
|
|
|
var img=$(ele).parent().parent().find(""img"").attr(""src""); |
|
|
|
var itemid= $(ele).parent().parent().parent().parent().attr(""data-sku""); |
|
|
|
var price=$(ele).parent().parent().parent().parent().find("".p-price i"").text(); |
|
|
|
var sales=$(ele).parent().parent().parent().parent().find("".p-commit"").text(); |
|
|
|
var title=$(ele).parent().parent().parent().parent().find("".p-name a em"").text(); |
|
|
|
var img=$(ele).parent().parent().parent().parent().find("".p-img img"").attr(""src""); |
|
|
|
debugger; |
|
|
|
hyCoreModel.setItemData({itemid:itemid,price:price,sales:sales,title:title,img:img,type:type}); |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
");
|
|
|
|
|
|
|
|
DoJavaScript(@"$('div#mainsrp-itemlist .items .item').find('.myitemState').remove();$('div#mainsrp-itemlist .items .item .pic').before('<div class=""myitemState""><div class=""stateGraydiv""></div></div><div class=""myopdiv"">
|
|
|
|
|
|
|
|
return DoJavaScript(@"$('div#J_goodsList .gl-item').find('.myitemState').remove();
|
|
|
|
$('div#J_goodsList .gl-item .p-img a').before(' |
|
|
|
<div class=""myitemState""> |
|
|
|
<div class=""stateGraydiv""></div></div><div class=""myopdiv""> |
|
|
|
<div class=""bgYellow"" style=""display:flex"" onclick=""optClick(this,3)"">竞品</div> |
|
|
|
<div class=""bgZs"" style=""display:flex"" onclick=""optClick(this,2)"">海选</div> |
|
|
|
<div class=""bgPig"" style=""display:flex"" onclick=""optClick(this,1)"">淘汰</div> |
|
|
|
<div class=""bgGreen"" style=""display:flex"" onclick=""optClick(this,0)"">同款</div> |
|
|
|
</div> |
|
|
|
')").isOk;
|
|
|
|
|
|
|
|
</div>')");
|
|
|
|
|
|
|
|
} |
|
|
|
#endregion
|
|
|
|
|
|
|
|
private bool AddCss() |
|
|
|
{ |
|
|
|
///添加css
|
|
|
|
return DoJavaScript(@"$('head').append('<style>
|
|
|
|
.myitemState |
|
|
@ -301,6 +416,16 @@ namespace 齐越慧眼.UserControls |
|
|
|
display:none; |
|
|
|
} |
|
|
|
|
|
|
|
.p-img:hover .myitemState |
|
|
|
{ |
|
|
|
display:none; |
|
|
|
} |
|
|
|
.p-img:hover .myopdiv |
|
|
|
{ |
|
|
|
display:unset; |
|
|
|
z-index:9999; |
|
|
|
} |
|
|
|
|
|
|
|
.bgGreen |
|
|
|
{ |
|
|
|
background: rgba(99, 161, 3, 0.8); |
|
|
@ -372,8 +497,6 @@ namespace 齐越慧眼.UserControls |
|
|
|
</style>')".Replace("\n", "").Replace("\r\n", "")).isOk;
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 执行js
|
|
|
|
/// </summary>
|
|
|
@ -396,7 +519,7 @@ namespace 齐越慧眼.UserControls |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public class CefAsyncJS |
|
|
|
public class TaobaoCefAsyncJS |
|
|
|
{ |
|
|
|
|
|
|
|
public string getTest() |
|
|
|