CrazyJeux

RainbowDDB test debug

Apr 13th, 2016
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        RainbowDDB
  3. // @namespace   CrazyJeux/Daring-Do
  4. // @author      CrazyJeux/Daring-Do
  5. // @match       *://www.jeuxvideo.com/*
  6. // @match       *://m.jeuxvideo.com/*
  7. // @match       *://www.forumjv.com/*
  8. // @description Ajoute un contour autour des messages signalés. La couleur change selon qui a effectué l'alerte ou si l'alerte a été traitée.
  9. // @version     20
  10. // @grant       none
  11. // ==/UserScript==
  12.  
  13. //Topic dédié : http://www.jeuxvideo.com/forums/42-1000021-39882332-1-0-1-0-rainbowddb-reperez-tous-les-messages-signales-meme-les-votres.htm
  14.  
  15. //Explications : http://image.noelshack.com/fichiers/2015/25/1434754809-explications-final.png
  16.  
  17. //Ajoutez ou retirez ici les motifs de ban complets qui doivent conduire au masquage automatique du message.
  18. var reasonsToHide = [];
  19.  
  20. //Enlevez les "//" des trois lignes ci-dessous pour cacher tous les messages signalés dont la raison a pu être déterminée.
  21. //reasonsToHide = reasonsToHide.concat("Pédopornographie", "Incitation à la haine, discrimination", "Mise en danger des personnes", "Diffamation, menaces", "Piratage, non respect des droits d'auteurs", "Apologie de comportements illégaux", "Données personnelles");
  22. //reasonsToHide = reasonsToHide.concat("Pornographie", "Insultes", "Flood de masse", "Raids, mass-dislikes et attaques de sites", "Spoilers");
  23. //reasonsToHide = reasonsToHide.concat("Message inopportun", "Doublons", "Publicité", "Règles spécifiques à chaque forum");
  24.  
  25. var colors = {"byother": "orange",
  26.     "byme": "red",
  27.     "ishandled": "lightgreen",
  28.     "isadmin": "#9393f5"};
  29. var borderWidthMessage = "5px";
  30. var borderWidthTopic = "2px";
  31. var topicsToo = true;
  32.            
  33. function ajaxReport(link, element, width, type) {
  34.     var xmlhttp = new XMLHttpRequest();
  35.     xmlhttp.onreadystatechange = function () {
  36.         if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
  37.             var reportDiv = document.createElement('div');
  38.             reportDiv.innerHTML = xmlhttp.responseText;
  39.             reportDiv.style.display.none;
  40.             document.body.appendChild(reportDiv);
  41.             var reportTextarea = reportDiv.querySelector("#signalement_commentaire");
  42.             if (reportTextarea === null) {
  43.                 console.log("reportTextarea is null");
  44.                 if (reportDiv.querySelector(".g-recaptcha") === null) {
  45.                     console.log("recaptcha is null");
  46.                     var generic = reportDiv.querySelector(".modal-generic-content");
  47.                     if (generic === null) {
  48.                         console.log("generic is null");
  49.                         return;
  50.                     }
  51.                     if (generic.innerHTML.indexOf("Vous avez déjà signalé ce contenu") >= 0) {
  52.                         styleElement(element, "byme", width, type);
  53.                         return;
  54.                     }
  55.                     if (generic.innerHTML.indexOf("Cet utilisateur ne peut pas être signalé") >= 0) {
  56.                         styleElement(element, "isadmin", width, type);
  57.                         return;
  58.                     }
  59.                     if (generic.innerHTML.indexOf("Ce contenu a déjà été modéré") >= 0) {
  60.                         styleElement(element, "ishandled", width, type);
  61.                         return;
  62.                     }
  63.                 } else {
  64.                     console.log("recaptcha is not null");
  65.                     styleElement(element, "byother", width, type);
  66.                     if (type === "message") {
  67.                         var reason = reportDiv.querySelector(".col-md-10");
  68.                         if (reason !== null) {
  69.                             reason = reason.innerHTML;
  70.                             console.log("reason is not null: '"+reason+"'");
  71.                             var options = element.querySelector(".bloc-options-msg");
  72.                             /*
  73.                             var info = document.createElement("div");
  74.                             info.innerHTML = reason;
  75.                             info.style.float = "left";
  76.                             info.style.color = "red";
  77.                             info.style.fontWeight = "bold";
  78.                             info.style.top = "12px";
  79.                             info.style.marginLeft = "15px";
  80.                             info.style.position = "relative";
  81.                             options.parentNode.insertBefore(info, options);
  82.                             */
  83.                             var msg = element.querySelector(".bloc-contenu .txt-msg");
  84.                             var p = Array.prototype.slice.call(msg.querySelectorAll("p"));
  85.                             p.forEach(function(el) {
  86.                                 var klass = el.getAttribute("class");
  87.                                 if (klass === null) {
  88.                                     klass = "";
  89.                                 }
  90.                                 klass += " maybeToHide";
  91.                                 el.setAttribute("class", klass);
  92.                             });
  93.                             var toHide = Array.prototype.slice.call(element.querySelectorAll(".maybeToHide"));
  94.                             var wrapper = document.createElement("p");
  95.                             var info = document.createElement("span");
  96.                             info.innerHTML = "Message signalé pour " + reason.charAt(0).toLowerCase() + reason.slice(1);
  97.                             info.style.color = "red";
  98.                             info.style.fontWeight = "bold";
  99.                             info.style.top = "12px";
  100.                             wrapper.appendChild(info);
  101.  
  102.                             var shouldHide = false;
  103.                             var hideShowMsg = document.createElement("p");
  104.                             if (reasonsToHide.indexOf(reason) >= 0) {
  105.                                 shouldHide = true;
  106.                                 toHide.forEach(function(el) {
  107.                                     el.style.display = "none";
  108.                                 });
  109.                                 wrapper.appendChild(document.createElement("br"));
  110.                                 hideShowMsg.innerHTML = "Afficher le contenu du message";
  111.                                 hideShowMsg.style.marginTop = "15px";
  112.                                 hideShowMsg.style.cursor = "pointer";
  113.                                 hideShowMsg.style.textDecoration = "underline";
  114.                                 hideShowMsg.style.marginBottom = "0px";
  115.                                 wrapper.appendChild(hideShowMsg);
  116.                                 wrapper.style.marginBottom = "0px";
  117.                             }
  118.  
  119.                             msg.insertBefore(wrapper, msg.firstChild);
  120.  
  121.                             if (shouldHide === true) {
  122.                                 var isShown = false;
  123.  
  124.                                 hideShowMsg.onclick = function() {
  125.                                     if (!isShown) {
  126.                                         var r = confirm("Voulez-vous vraiment afficher ce message ?\n\n" +
  127.                                                         "Vous pouvez changer les motifs de signalement conduisant au masquage du message.\n\n" +
  128.                                                         "Pour cela, il faut modifier la variable reasonsToHide au début du code du script.");
  129.                                         if (r === false) {
  130.                                             return;
  131.                                         }
  132.                                         toHide.forEach(function(el) {
  133.                                             el.style.display = "initial";
  134.                                         });
  135.                                         hideShowMsg.innerHTML = "Cacher le contenu du message";
  136.                                         wrapper.style.marginBottom = "";
  137.                                         isShown = true;
  138.                                     } else {
  139.                                         toHide.forEach(function(el) {
  140.                                             el.style.display = "none";
  141.                                         });
  142.                                         hideShowMsg.innerHTML = "Afficher le contenu du message";
  143.                                         wrapper.style.marginBottom = "0px";
  144.                                         isShown = false;
  145.                                     }
  146.                                 };
  147.                             }
  148.                         }
  149.                     }
  150.                 }
  151.             }
  152.             reportDiv.remove();
  153.         }
  154.     };
  155.     xmlhttp.open("GET", link, true);
  156.     xmlhttp.send();
  157. }
  158.  
  159. function checkMessage(href, callback) {
  160.     var xmlhttp = new XMLHttpRequest();
  161.     xmlhttp.onreadystatechange = function () {
  162.         if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
  163.             var reportDiv = document.createElement('div');
  164.             reportDiv.innerHTML = xmlhttp.responseText;
  165.             reportDiv.style.display.none;
  166.             document.body.appendChild(reportDiv);
  167.             var textarea = reportDiv.querySelector("#signalement_commentaire");
  168.             if (textarea !== null) {
  169.                 console.log("textarea is not null");
  170.                 callback('isnotreported');
  171.                 return;
  172.             }
  173.             var errorDiv = reportDiv.querySelector(".alert.alert-danger");
  174.             if (errorDiv !== null) {
  175.                 console.log("errorDiv is not null, errorDiv.innerHTML:\n"+errorDiv.innerHTML);
  176.                 if (errorDiv.innerHTML.indexOf("Ce contenu a déjà été modéré") >= 0) {
  177.                     callback('ishandled');
  178.                     return;
  179.                 }
  180.                 if (errorDiv.innerHTML.indexOf("Ce contenu a déjà été signalé") >= 0) {
  181.                     callback('isreported');
  182.                     return;
  183.                 }
  184.                 if (errorDiv.innerHTML.indexOf("Cet utilisateur ne peut pas être signalé") >= 0) {
  185.                     callback('isadmin');
  186.                     return;
  187.                 }
  188.             }
  189.         }
  190.     };
  191.     xmlhttp.open("GET", href, true);
  192.     xmlhttp.send();
  193. }
  194.  
  195. function inIframe() {
  196.     try {
  197.         return window.self !== window.top;
  198.     } catch (e) {
  199.         return true;
  200.     }
  201. }
  202.  
  203. function styleElement(element, info, borderWidth, elementType) {
  204.     //element.style.borderWidth = borderWidth + "!important";
  205.    
  206.     var el = null;
  207.     var prevStyle = "";
  208.     if (elementType === "topic") {
  209.         el = element.querySelector("a.topic-title");
  210.         prevStyle = el.getAttribute("style");
  211.         if (typeof prevStyle === "undefined" || prevStyle === null) {
  212.             prevStyle = "";
  213.         }
  214.     }
  215.    
  216.     switch (info) {
  217.         case "ishandled":
  218.             if (elementType === "topic") {
  219.                 el.setAttribute("style", prevStyle + ";color: " + colors.ishandled + " !important;");
  220.             } else {
  221.                 element.style.cssText += ";box-shadow: 0 0 " + borderWidth + " " + borderWidth + " " + colors.ishandled + " !important;";
  222.             }
  223.             break;
  224.         case "byme":
  225.             if (elementType === "topic") {
  226.                 //element.style.cssText += ";border: " + borderWidth + " solid " + colors.byme + " !important;";
  227.                 el.setAttribute("style", prevStyle + ";color: " + colors.byme + " !important;");
  228.             } else {
  229.                 element.style.cssText += ";box-shadow: 0 0 " + borderWidth + " " + borderWidth + " " + colors.byme + " !important;";
  230.             }
  231.             break;
  232.         case "byother":
  233.             if (elementType === "topic") {
  234.                 //element.style.cssText += ";border: " + borderWidth + " solid " + colors.byother + " !important;";
  235.                 el.setAttribute("style", prevStyle + ";color: " + colors.byother + " !important;");
  236.             } else {
  237.                 element.style.cssText += ";box-shadow: 0 0 " + borderWidth + " " + borderWidth + " " + colors.byother + " !important;";
  238.             }
  239.             break;
  240.         case "isadmin":
  241.             if (elementType === "topic") {
  242.                 //element.style.cssText += ";border: " + borderWidth + " solid " + colors.isadmin + " !important;";
  243.                 //el.setAttribute("style", prevStyle + ";color: " + colors.isadmin + " !important;");
  244.             } else {
  245.                 //element.style.cssText += ";box-shadow: 0 0 " + borderWidth + " " + borderWidth + " " + colors.isadmin + " !important;";
  246.             }
  247.             break;
  248.         default:
  249.             var err = "Erreur fonction styleElement : info='" + info + "'";
  250.             alert(err);
  251.             throw new Error(err);
  252.     }
  253. }
  254.  
  255. function toCall() {
  256.     //Our own messages
  257.     if (window.location.hostname === "www.jeuxvideo.com") {
  258.         var deleteButtons = document.querySelectorAll(".picto-msg-croix");
  259.         if (deleteButtons.length > 0) {
  260.             var iframeMessages = document.createElement("iframe");
  261.            
  262.             var requestsForMyMessages = function(origin) {
  263.                 var i = 0;
  264.                 (function loop(i) {
  265.                     if (i >= deleteButtons.length) {
  266.                         return;
  267.                     }
  268.                     var message = deleteButtons[i].parentNode;
  269.                     while (message.getAttribute("class").indexOf("bloc-message-forum") < 0) {
  270.                         message = message.parentNode;
  271.                     }
  272.                     var messAttr = message.getAttribute("data-handledbyrainbowddb");
  273.                     var isHandled = (messAttr !== null && messAttr === "true");
  274.                     if (!isHandled) {
  275.                         message.setAttribute("data-handledbyrainbowddb", "true");
  276.                         iframeMessages.contentWindow.postMessage({'messageid': message.getAttribute("data-id")}, origin);
  277.                     }
  278.  
  279.                     setTimeout(function () {
  280.                         loop(i + 1);
  281.                     }, 5);
  282.                 })(i);
  283.             };
  284.            
  285.             var handleResponseFromMobileJVCForMessages = function (e) {
  286.                 var origin = e.origin || e.originalEvent.origin;
  287.                 if (origin !== 'http://m.jeuxvideo.com') {
  288.                     return;
  289.                 }
  290.                 if (e.data.hasOwnProperty("started")) {
  291.                     if (e.data.started === true) {
  292.                         requestsForMyMessages(origin);
  293.                     }
  294.                     return;
  295.                 }
  296.                 if (e.data.hasOwnProperty("messageid")) {
  297.                     var message = document.querySelector("[data-id='" + e.data.messageid + "']");
  298.                    
  299.                     if (e.data.hasOwnProperty("isnotreported")) {
  300.                         return;
  301.                     }
  302.                     if (e.data.hasOwnProperty("ishandled")) {
  303.                         styleElement(message, "ishandled", borderWidthMessage, "message");
  304.                         return;
  305.                     }
  306.                     if (e.data.hasOwnProperty("isreported")) {
  307.                         styleElement(message, "byother", borderWidthMessage, "message");
  308.                         return;
  309.                     }
  310.                     if (e.data.hasOwnProperty("isadmin")) {
  311.                         styleElement(message, "isadmin", borderWidthMessage, "message");
  312.                         return;
  313.                     }
  314.                 }
  315.             };
  316.  
  317.             window.addEventListener("message", handleResponseFromMobileJVCForMessages, false);
  318.  
  319.             var mobileURL;
  320.             var index = window.location.pathname.substring(1).indexOf("/");
  321.             var firstDirectory = window.location.pathname.substring(1, index + 1);
  322.             //Direct message
  323.             if (firstDirectory !== "forums") {
  324.                 mobileURL = document.querySelector(".btn.btn-actu-new-list-forum").parentNode.href.replace("www.jeuxvideo.com", "m.jeuxvideo.com");
  325.             } else { //Message in a topic
  326.                 var desktopURL = document.location.href;
  327.                 mobileURL = desktopURL.replace("www.jeuxvideo.com", "m.jeuxvideo.com");
  328.             }
  329.            
  330.             var iframeMessages = document.createElement("iframe");
  331.             iframeMessages.style.display = "none";
  332.             document.body.appendChild(iframeMessages);
  333.             iframeMessages.src = mobileURL;
  334.         }
  335.     }
  336.  
  337.     //Other people's messages
  338.     var reportButtons = document.getElementsByClassName("picto-msg-exclam");
  339.     var i = 0;
  340.     (function loop(i) {
  341.         console.log("reportButton #"+i+"/"+reportButtons.length);
  342.         if (i >= reportButtons.length) {
  343.             return;
  344.         }
  345.         var link = reportButtons[i].getAttribute("data-selector");
  346.         var message = reportButtons[i].parentNode;
  347.         while (message.className.indexOf("bloc-message-forum") < 0) {
  348.             message = message.parentNode;
  349.         }
  350.         var messAttr = message.getAttribute("data-handledbyrainbowddb");
  351.         var isHandled = (messAttr !== null && messAttr === "true");
  352.         console.log("is link ("+link+") already handled? "+isHandled);
  353.         if (!isHandled) {
  354.             message.setAttribute("data-handledbyrainbowddb", "true");
  355.            
  356.             console.log("before ajaxReport for link '"+link+"'");
  357.             ajaxReport(link, message, borderWidthMessage, "message");
  358.         }
  359.  
  360.         setTimeout(function () {
  361.             loop(i + 1);
  362.         }, 5);
  363.     })(i);
  364.  
  365.     //Topics
  366.     if (topicsToo === true) {
  367.         var table = document.querySelector(".topic-list");
  368.         if (table !== null) {
  369.             var topicRows = table.querySelectorAll("li[data-id]");
  370.            
  371.             var topicRequests = [];
  372.            
  373.             var handleResponseFromMobileJVCForTopics = function (e) {
  374.                 var origin = e.origin || e.originalEvent.origin;
  375.                 if (origin !== 'http://m.jeuxvideo.com') {
  376.                     return;
  377.                 }
  378.                 //console.log("result in listener: "+JSON.stringify(e.data, null, 4));
  379.                 if (e.data.hasOwnProperty("started")) {
  380.                     if (e.data.started === true) {
  381.                         var resFilter = topicRequests.filter(function(obj) {
  382.                             return obj.url === e.data.url;
  383.                         });
  384.                         if (resFilter.length > 0) {
  385.                             resFilter[0].func(origin);
  386.                         }
  387.                     }
  388.                     return;
  389.                 }
  390.                 if (e.data.hasOwnProperty("topicid")) {
  391.                     var row = null;
  392.                     for (var j = 0; j < topicRows.length; j++) {
  393.                         var curDataId = topicRows[j].getAttribute("data-id");
  394.                         if (curDataId === e.data.topicid) {
  395.                             row = topicRows[j];
  396.                             break;
  397.                         }
  398.                     }
  399.                     if (row !== null) {
  400.                         if (e.data.hasOwnProperty("isnotreported")) {
  401.                             return;
  402.                         }
  403.                         if (e.data.hasOwnProperty("ishandled")) {
  404.                             styleElement(row, "ishandled", borderWidthTopic, "topic");
  405.                             return;
  406.                         }
  407.                         if (e.data.hasOwnProperty("isreported")) {
  408.                             styleElement(row, "byother", borderWidthTopic, "topic");
  409.                             return;
  410.                         }
  411.                         if (e.data.hasOwnProperty("isadmin")) {
  412.                             styleElement(row, "isadmin", borderWidthTopic, "topic");
  413.                             return;
  414.                         }
  415.                     }
  416.                 }
  417.             };
  418.  
  419.             window.addEventListener("message", handleResponseFromMobileJVCForTopics, false);
  420.            
  421.             for (var i = 0; i < topicRows.length; i++) {
  422.                 var link = topicRows[i].querySelector("a");
  423.                 if (link === null) {
  424.                     continue;
  425.                 }
  426.                 var href = link.href;
  427.                
  428.                 var topicAuthorNickname = null;
  429.                 var topicAuthorArea = topicRows[i].querySelector(".topic-author");
  430.                 if (topicAuthorArea !== null) {
  431.                     topicAuthorNickname = topicAuthorArea.textContent.trim();
  432.                 }
  433.                 var currentAuthorNickname = null;
  434.                 var currentAuthorArea = document.querySelector(".account-pseudo");
  435.                 if (currentAuthorArea !== null) {
  436.                     currentAuthorNickname = currentAuthorArea.textContent.trim();
  437.                 }
  438.                 var myTopic = false;
  439.                 if (topicAuthorNickname !== null && currentAuthorNickname !== null) {
  440.                     if (topicAuthorNickname.toLowerCase() === currentAuthorNickname.toLowerCase()) {
  441.                         myTopic = true;
  442.                     }
  443.                 }
  444.                 if (myTopic === false) {
  445.                     (function(href, topic) {
  446.                         var xmlhttp = new XMLHttpRequest();
  447.                         xmlhttp.onreadystatechange = function () {
  448.                             if (xmlhttp.readyState === 4 && xmlhttp.status === 200) {
  449.                                 var topicDiv = document.createElement('div');
  450.                                 topicDiv.innerHTML = xmlhttp.responseText;
  451.                                 var mess = topicDiv.querySelector(".bloc-message-forum");
  452.                                 if (mess !== null) {
  453.                                     topicDiv.innerHTML = mess.outerHTML;
  454.                                     var reportBtn = topicDiv.querySelector(".picto-msg-exclam");
  455.                                     if (reportBtn !== null) {
  456.                                         var link = reportBtn.getAttribute("data-selector");
  457.                                         ajaxReport(link, topic, borderWidthTopic, "topic");
  458.                                     }
  459.                                 }
  460.                             }
  461.                         };
  462.                         xmlhttp.open("GET", href, true);
  463.                         xmlhttp.send();
  464.                     })(href, topicRows[i]);
  465.                 } else { //One of my topics
  466.                     var topicID = topicRows[i].getAttribute("data-id");
  467.                     var iframeTopic = document.createElement("iframe");
  468.                     (function (iframeTopic, topicID, href, link) {
  469.                         var mobileURL = href.replace("www", "m");
  470.                         //console.log("my topic: '"+mobileURL+"', topicID='"+topicID+"'");
  471.                         var requestForATopic = function (origin) {
  472.                             //console.log("requestForATopic for my topic: '"+mobileURL+"', topicID='"+topicID+"'");
  473.                             iframeTopic.contentWindow.postMessage({'topicid': topicID, 'topicname': link.textContent.trim()}, origin);
  474.                         };
  475.                         topicRequests.push({"url": mobileURL, "func": requestForATopic});
  476.                         iframeTopic.style.display = "none";
  477.                         document.body.appendChild(iframeTopic);
  478.                         iframeTopic.src = mobileURL;
  479.                     })(iframeTopic, topicID, href, link);
  480.                 }
  481.             }
  482.         }
  483.     }
  484. }
  485.  
  486.  
  487. if (window.location.hostname.indexOf("forumjv") < 0) {
  488.     document.domain = "jeuxvideo.com";
  489. }
  490. if (window.location.hostname !== "m.jeuxvideo.com") {
  491.    
  492.     toCall();
  493.  
  494.     addEventListener('instantclick:newpage', toCall);
  495.    
  496.     (function btnLoop() {
  497.         var moreCommentsButtons = document.querySelectorAll(".link-plus-de-comm");
  498.         for (var i=0; i<moreCommentsButtons.length; i++) {
  499.             var btnAttr = moreCommentsButtons[i].getAttribute("data-handledbyrainbowddb");
  500.             var isHandled = (btnAttr !== null && btnAttr === "true");
  501.             if (!isHandled) {
  502.                 moreCommentsButtons[i].setAttribute("data-handledbyrainbowddb", "true");
  503.                
  504.                 moreCommentsButtons[i].onclick = function() {
  505.                     (function loop() {
  506.                         var newElements = document.querySelectorAll(".bloc-message-forum:not([data-handledbyrainbowddb])");
  507.                         if (newElements.length === 0) {
  508.                             setTimeout(loop, 50);
  509.                         } else {
  510.                             btnLoop();
  511.                             toCall();
  512.                         }
  513.                     })();
  514.                 };
  515.             }
  516.         }
  517.     })();
  518. } else {
  519.     if (inIframe()) {
  520.         var handleResponseFromDesktopJVC = function (e) {
  521.             var origin = e.origin || e.originalEvent.origin;
  522.             if (origin !== 'http://www.jeuxvideo.com') {
  523.                 return;
  524.             }
  525.             console.log("e.data in iframe: "+JSON.stringify(e.data, null, 4));
  526.             //Message
  527.             if (e.data.hasOwnProperty("messageid")) {
  528.                 var realId = "#post_" + e.data.messageid;
  529.                 var message = document.querySelector(realId);
  530.                 if (message === null) {
  531.                     return;
  532.                 }
  533.                 var alertButton = message.querySelector(".picto-msg-exclam");
  534.                 if (alertButton === null) {
  535.                     console.log("alertButton is null");
  536.                     return;
  537.                 }
  538.                 var href = alertButton.parentNode.getAttribute("href");
  539.                 checkMessage(href, function (ret) {
  540.                     var result = {'messageid': e.data.messageid};
  541.                     result[ret] = true;
  542.                     e.source.postMessage(result, origin);
  543.                 });
  544.             }
  545.  
  546.             //Topic
  547.             if (e.data.hasOwnProperty("topicid")) {
  548.                 var message = document.querySelector(".post");
  549.                 if (message !== null) {
  550.                     var alertButton = message.querySelector(".picto-msg-exclam");
  551.                     if (alertButton !== null) {
  552.                         var href = alertButton.parentNode.getAttribute("href");
  553.                         checkMessage(href, function (ret) {
  554.                             var result = {'topicid': e.data.topicid, 'topicname': e.data.topicname};
  555.                             result[ret] = true;
  556.                             //console.log("result in iframe: "+JSON.stringify(result, null, 4));
  557.                             e.source.postMessage(result, origin);
  558.                         });
  559.                     } else {
  560.                         //console.log("alert btn is null, message html:\n"+message.outerHTML);
  561.                     }
  562.                 } else {
  563.                     //console.log("message is null");
  564.                 }
  565.             }
  566.         };
  567.  
  568.         window.addEventListener("message", handleResponseFromDesktopJVC, false);
  569.        
  570.         window.parent.postMessage({"started": true, "url": window.location.href}, "*");
  571.     }
  572. }
Advertisement
Add Comment
Please, Sign In to add comment