window.onerror=function(err,url,line){
if(err=='boom'){
console.log(true);
}
else{
console.log(false);
}};
console.error('boom');
Dies gibt aus!Versuchen, Google Chrome Cast zu erkennen und stoppen Sie es Dinge zu verlangsamen
Wie kann ich im Java-Skript erkennen, welchen Text der Fehler enthält?
Ich versuche, Google Chrome Cast-Erweiterung Fehler
konnte nicht ermitteln Ressource laden: net :: ERR_ADDRESS_UNREACHABLE Chrom-Erweiterung: //boadgeojelhgndaghljhdicfkmllpafd/cast_sender.js
bezogen werden: Google chrome cast sender error if chrome cast extension is not installed or using incognito
Meine Argumentation ist
//tried to detect chromecast extension id: boadgeojelhgndaghljhdicfkmllpafd
//it looks like it is protected from detection (tried: http://blog.kotowicz.net/2012/02/intro-to-chrome-addons-hacking.html)
//if they are using:
//chrome flash ===flash (needs double click as &autoplay=1 lets the user do only one click but it side-effects with no video preview)
//chrome chromeCast===fastjs (google are being bad players here!)
//chrome ===slowjs (almost unusable website)
//chrome flash chromeCast===flash ffsake! (maybe try one video then see if there are errors and put a cookie, chromecast=true means that we got no errors so we don't need flash!) todo:how to analyse error text?
//if the user is on chrome and does not have flash then they are youtubes 'exception'! they will have very crap loading times
var chrome=0;
if(/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor)){
chrome=1;
function detectPlugin(substrs){
if(navigator.plugins){
for(var i=0,l=navigator.plugins.length;i<l;i++){
var plugin=navigator.plugins[i]
, haystack=plugin.name+plugin.description
, found=0;
for(var j=0;j<substrs.length;j++){
if(haystack.indexOf(substrs[j])!=-1){found++;}
}
if(found==substrs.length){return true;}
}}
return false;
}
var detectFlash=[/*"Shockwave",*/"Flash"]; //not entirely sure how relevant shockwave is here
if(detectPlugin(detectFlash)){chrome=2;}
}
dann erstelle ich einen iframe mit:
'https://www.youtube.com/'+(chrome==2?'v':'embed')+'/'+ytvidcode
wo ytvidcode
die ID des Videos youtube ist
v
ist für den entwerteten Flash einbetten während embed
für die html5 ist (gebrochene/wont fix) einbetten
So ist der obige Code Chrom erkennt dann versucht, den Blitz zu erkennen, kann jedoch keinen Chrom-Cast erkennen.
Wenn der Benutzer sowohl Chrome-Cast als auch Flash hat (da er keine Chrome-Cast/Chrome-Cast-Fehler erkennen kann), wird er Flash erzwingen, wenn er vorhanden ist.
Wenn Flash nicht vorhanden ist, dann wird der Benutzer eine beschissene youtube einbetten Erfahrung haben (sie könnten einen anderen Browser verwenden)
Ist es möglich, die Fehler, die durch Chromguss oder anderen Fußabdruck zu detektieren seine Präsenz?
weil, wenn es eine installierte Erweiterung ist, dann sollte es vollständig als Flash verwendet werden, wird
abgeschriebenwindow.onerror=function(e,url,line){console.dir(arguments);}//nope
window.onerror=function(e,url,line){console.dir(this);}//nope
https://github.com/Valve/fingerprintjs2
new Fingerprint2().get(function(result, components){
console.log(result); //a hash, representing your device fingerprint
console.log(components); // an array of FP components
});
components[13]
("regular_plugins") zeigt Kein Google Cast, obwohl ich es heute installiert habe
Das einzige, was ich an dieser Stelle denken kann, ist der Laden eines ihrer Videos zu Zeit (wenn sie auf chome sind und es zu lange dauert das Test-Video zu laden, dann müssen sie nicht Chromguss haben), diese https://developers.google.com/youtube/iframe_api_reference#Getting_Started und einen Timer und ein Cookie nach (so der Test nur einmal passiert) ... ich werde prüfen zurück vielleicht dann
Vergessen Sie nicht, die Antwort zu akzeptieren (https://stackoverflow.com/help/someone-answers). – abraham
danke für die Änderungen, ich muss bis morgen warten –