Benutzer-Werkzeuge

Webseiten-Werkzeuge


anwendungen_und_sonstiges:greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
anwendungen_und_sonstiges:greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage [2015/09/21 18:22] ronnyanwendungen_und_sonstiges:greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage [2016/04/02 00:48] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
 ====== Greasemonkey - Blizzard-Forumsbeitrag zu Zwischenablage ====== ====== Greasemonkey - Blizzard-Forumsbeitrag zu Zwischenablage ======
  
-**Noch unfertig!**+===== Fertig ===== 
 + 
 +==== Wohin mit dem transferierten Text? ==== 
 + 
 +Das ganze ist komplizierter als ich dachte - die Funktion läuft zwar und konvertiert auch den Eingabestring (den eigentlichen Post), allerdings lädt sich dieser Teil der Seite danach nicht neu. 
 + 
 +Es gibt nun zwei Möglichkeiten, wie man mit dem ganzen umgehen kann: 
 +  - Mithilfe von Ajax das Neuladen des Elements im Browser triggern 
 +  - Das ganze nur als Prompt-Box annehmen, mit allen dazugehörigen Nachteilen :( 
 + 
 +**Update**: Es gibt noch eine weitere Möglichkeit, nämlich indem einfach ein neues Fenster geöffnet wird - dort lässt sich nun der neue Text einfach einfügen. Dort kann man dann mit Strg+A, Strg+C den Quelltext einfach kopieren. 
 + 
 +===== ToDo ===== 
 + 
 +  - Quellenangabe 
 +  - Titelzeile 
 +  - Das Fenster hört nicht auf zu laden. Möglicherweise braucht das Ding ein sauberes HTML-Gerüst 
 +===== Sourcecode =====
  
 <code Javascript> <code Javascript>
Zeile 25: Zeile 42:
  if (varDebug == true) console.log('Select Post No. ' + i + ' with Id ' + varSinglePost.getAttribute('data-post-id') + ': ' + varSinglePost);  if (varDebug == true) console.log('Select Post No. ' + i + ' with Id ' + varSinglePost.getAttribute('data-post-id') + ': ' + varSinglePost);
  varStringToCopy = varSinglePost.children[1].children[1].children[0].innerHTML;  varStringToCopy = varSinglePost.children[1].children[1].children[0].innerHTML;
 + varStringToCopy = varStringToCopy.replace(/'/g, "\\'");
  varATag = document.createElement('a');  varATag = document.createElement('a');
  varATag.setAttribute('href','javascript:copyToClipboard(\''+varStringToCopy+'\');');  varATag.setAttribute('href','javascript:copyToClipboard(\''+varStringToCopy+'\');');
Zeile 34: Zeile 52:
 varScript = document.createElement('script'); varScript = document.createElement('script');
 varScript.setAttribute('type','text/javascript'); varScript.setAttribute('type','text/javascript');
-varScript.innerHTML = "function copyToClipboard(text) {prompt('Ctrl+cEnter', text);}";+varScript.innerHTML = "function copyToClipboard(text) {Clipboard = window.open(); Clipboard.document.write(convertText2(text));}"; 
 +varPostList.appendChild(varScript); 
 +varScript = document.createElement('script'); 
 +varScript.setAttribute('type','text/javascript'); 
 +varScript.innerHTML = "function quotestr(quoteLevel) {\n\tqstr = \"\";\tfor (j = 1; j <= quoteLevel; j++) {\n\t\tqstr += \">\";\n\t}\n\treturn (qstr);\n}"; 
 +varPostList.appendChild(varScript); 
 +varScript = document.createElement('script'); 
 +varScript.setAttribute('type','text/javascript'); 
 +varScript.innerHTML = "function convertText2(varText)\r\n{\r\n    var Text = [];\r\n    var RestText = varText;\r\n    do {\r\n        FoundSomething = false;\r\n        positionTag = -1;\r\n        positionTag = RestText.indexOf(\"<\");\r\n        if (positionTag != -1) {\r\n            FoundSomething = true;\r\n            if (positionTag == 0)\r\n            {\r\n                positionTagEnd = -1;\r\n                positionTagEnd = RestText.indexOf(\">\") + 1;\r\n                Text.push(RestText.substring(0, positionTagEnd));\r\n                RestText = RestText.substring(positionTagEnd);\r\n            } else\r\n            {\r\n                positionTagEnd = -1;\r\n                positionTagEnd = RestText.indexOf(\"<\");\r\n                Text.push(RestText.substring(0, positionTagEnd));\r\n                RestText = RestText.substring(positionTagEnd);\r\n            }\r\n        } else {\r\n            Text.push(RestText);\r\n            RestText = \"\";\r\n        }\r\n    } while (FoundSomething == true && RestText.length > 0);\r\n    var actQBLevel = 0;\r\n    var ignoreBecauseSpan = false;\r\n    var varText = \"\";\r\n    for (i = 0; i < Text.length ; i++)\r\n    {\r\n        if (Text[i].indexOf(\"<blockquote\") != -1)\r\n        {\r\n            actQBLevel++;\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<\/blockquote\") != -1)\r\n        {\r\n            actQBLevel--;\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<div\") != -1)\r\n        {\r\n            varText += \"<br>\" + quotestr(actQBLevel);\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<\/div\") != -1)\r\n        {\r\n            varText += \"<br>\" + quotestr(actQBLevel);\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<b>\") != -1 || Text[i].indexOf(\"<\/b>\") != -1)\r\n        {\r\n            varText += \"**\";\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<span\") != -1)\r\n        {\r\n            varText += \"\/\/\";\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<\/span\") != -1)\r\n        {\r\n            varText += \"\/\/&nbsp;\";\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<a\") != -1)\r\n        {\r\n            varText += \"[[\";\r\n            hrefPos = Text[i].indexOf(\"href=\\\"\");\r\n            hrefPostStart = hrefPos + 6;\r\n            hrefPostEnd = (Text[i].indexOf(\"\\\"\", hrefPostStart));\r\n            urlRef = Text[i].substring(hrefPostStart, hrefPostEnd);\r\n            baseURL = location.href;\r\n            baseURLTopic = (baseURL.lastIndexOf(\"\/\")) + 1;\r\n            baseURL = baseURL.substring(0, baseURLTopic);\r\n            varText += baseURL + urlRef + \"|\";\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<\/a\") != -1)\r\n        {\r\n            varText += \"]]\";\r\n            continue;\r\n        }\r\n        if (Text[i].indexOf(\"<br\") != -1)\r\n        {\r\n            varText += \"<br>\" + quotestr(actQBLevel);\r\n            continue;\r\n        }\r\n        if (varText == \"\")\r\n        {\r\n            varText += quotestr(actQBLevel) + Text[i];\r\n        } else\r\n        {\r\n            varText += Text[i];\r\n        }\r\n    }\r\n    return (varText);\r\n}";
 varPostList.appendChild(varScript); varPostList.appendChild(varScript);
 </code> </code>
  
-tablefunctions.js+===== Interessante Infos ===== 
 + 
 +==== Neues Fenster in Javascript öffnen ==== 
 + 
 +Vielleicht hilft dieser Code-Schnipsel weiter:
 <code Javascript> <code Javascript>
-function convertText(varText+function FensterOeffnen (Adresse)  
-+{  
-    0; +  MeinFenster window.open(Adresse, "Zweitfenster", "width=300,height=400,left=100,top=200"); 
-    do { +  MeinFenster.document.write("<p>ein neues Fenster!<br>(Besser wäre aber eine dialog-Box!)</p>"); 
-        FoundSomething = false; +  MeinFenster.focus();
-        positionBR = -1; +
-        positionBR = varText.indexOf("<br"); +
-        //console.log(position); +
-        if (positionBR != -1) +
-        { +
-            FoundSomething = true; +
-            positionBREnd = varText.indexOf(">", positionBR) + 1; +
-            Substring = varText.substring(positionBR, positionBREnd); +
-            varText = varText.replace(Substring, "\\\\ "); +
-        } +
-        positionBlockQuote -1; +
-        positionBlockQuote = varText.indexOf("<blockquote"); +
-        if (positionBlockQuote != -1) +
-        { +
-            FoundSomething = true; +
-            BlockQuoteCounter = 0; +
-            positionBlockQuote2 = varText.indexOf(">"positionBlockQuote) + 1; +
-            positionBlockQuote3 positionBlockQuote2; +
-            BlockQuoteEndFound = false; +
-            do { +
-                positionNextBlockQuote = varText.indexOf("<blockquote"positionBlockQuote2); +
-                positionBlockQuoteEnd varText.indexOf("</blockquote>"positionBlockQuote2); +
-                if (positionNextBlockQuote !-1 && positionNextBlockQuote < positionBlockQuoteEnd) +
-                { +
-                    varText = varText.replace("</blockquote>", "((/BLOCKQUOTE))"); +
-                    BlockQuoteCounter++; +
-                } else +
-                { +
-                    varText = varText.replace("</blockquote>", "\n\n"); +
-                    for (i = BlockQuoteCounter; i > 0; i--) +
-                    { +
-                        varText = varText.replace("((/BLOCKQUOTE))", "</blockquote>"); +
-                    } +
-                    BlockQuoteEndFound = true; +
-                } +
-            } while (BlockQuoteEndFound == false); +
-            Substring = varText.substring(positionBlockQuote, positionBlockQuote3); +
-            varText = varText.replace(Substring, "> "); +
-        } +
-        positionDiv = -1; +
-        positionDiv = varText.indexOf("<div"); +
-        if (positionDiv != -1) +
-        { +
-            FoundSomething = true; +
-            positionDivEnd = varText.indexOf(">", positionDiv) + 1; +
-            Substring = varText.substring(positionDiv, positionDivEnd); +
-            varText = varText.replace(Substring, " "); +
-        } +
-        positionDivE = -1; +
-        positionDivE = varText.indexOf("</div>"); +
-        if (positionDivE != -1) +
-        { +
-            FoundSomething = true; +
-            varText = varText.replace("</div>", ""); +
-        } +
-        console.log(varText)+
-        i++; +
-        //console.log(i); +
-    } +
-    while (FoundSomething == true); +
-    return varText;+
 } }
- 
-console.log("Los gehts!"); 
-varContent = convertText(document.getElementById("demo2").innerHTML); 
-document.getElementById("demo2").innerHTML = varContent; 
-console.log("Fertig!"); 
 </code> </code>
  
-<code HTML> +Quelle[[https://wiki.selfhtml.org/wiki/JavaScript/Objekte/window|Link]] 
-<html> + 
-<head>someting header</head> +==== Alle Single-Quotes in einem String Escapen ==== 
-<body> + 
-<h1>Teststring:</h1><br /> +<code Javascript> 
-    <div id="demo2"><blockquote xmlns="http://www.w3.org/1999/xhtml" data-quote="159969700109" class="quote-public"><div><span class="bml-quote-date">21.09.2015 14:04</span>Beitrag von <a href="15940274323?page=3#56">Ninnifee</a></div><blockquote data-quote="159977599850" class="quote-public"><div><span class="bml-quote-date">21.09.2015 12:54</span>Beitrag von <a href="15940274323?page=3#50">zHy</a></div><br />&amp; ninnifee:<br /><br />Gerade für Casuals wie du sagst du seist einer/ eine: Warum interessiert es dich, welches Grift level ein Paragon 1500er schafft?<br /><br />Warum sollte ein Casual der 1-2h ab und zu mal spielt, das selbe erreichen können / selbe Belohnung erhalten wie jemand der 18h/ Tag spielt? Das würde keine Sinn ergeben?? ;)</blockquote><br /><br />Zum ersten Teil:<br />Hast du überhaupt meinen letzten Post, der extra für dich war, durchgelesen oder so wie den restlichen Thread ignoriert?<br /><br />Zum zweiten Teil:<br />Es geht hier nicht um Casual vs. Pro, es geht um Solo vs. Gruppe.<br />Bei gleichem Zeitaufwand hat der Solospieler nunmal einen immensen Nachteil gegenüber dem Gruppenspieler. Warum?<br />Warum wird ein Solospieler so benachteiligt, nur weil er nicht mit anderen zusammenspielen will?<br />DAS hat bisher auch noch keiner beantworten können, es kommt immer nur "Dann spiel halt auch in Gruppe." oder "In Communities/Clans findet man easy ne Gruppe."<br />Aber es hat noch keiner ein Argument gebracht warum man als Solospieler so hinterherhinkt.<br /><br />Und wie schon jemand sagte, eine Gruppe hat eh schon "natürliche" Vorteile durch Synergien etc, somit sind sie von Haus aus schneller. Und wir wollen ja auch nicht 1:1 die gleiche XP wie Gruppenspieler.<br />Aber zumindest 80% oder so wären halt angebracht, nicht nur 20%...<br /><br />Und was mich als Solospieler das stört?<br />Nehmen wir mal an du hättest einen Nebenjob und würdest Zeitungen verteilen.<br />Du machst das allein mit dem Rad und brauchst dafür ne Stunde.<br />Dafür bekommst du 10 Euro.<br />4 andere Leute machen das auch, aber zusammen, und können natürlich in dieser Stunde mehr Zeitungen verteilen. Logischerweise bekommen sie nun auch mehr, sagen wir jeder 12 Euro.<br />Wenn wir nun den XP-Buff ummünzen bekommt zusätzlich jeder von den vieren nochmal 50 Euro obendrauf. Einfach so weil sie zu viert unterwegs waren.<br />Natürlich kannst du nun glücklich sein und nicht zu den anderen schauen, schließlich hast du 10 Euro verdient.<br />Aber es ist halt doch ein wenig ungerecht wenn die anderen, nur weil sie zu viert unterwegs waren, nicht nur ein wenig mehr, sondern sehr viel mehr bekommen haben.<br /><br />Was es mich interessiert, welches GRift ein 1500er schafft? Grundsätzlich gar nicht.<br />Aber ich würde halt gern in angemessener Zeit auch mal soweit sein. Auch wenn ich solo spiele, spiele ich um mich stetig zu verbessern.<br />Und wenn wir wieder von gleichem Zeitaufwand ausgehen ist es eben ernüchternd wenn dieses Ziel der Gruppenspieler nach 2 Wochen und der Solospieler erst nach 2 Monaten erreicht.</blockquote><br xmlns="http://www.w3.org/1999/xhtml" /><br xmlns="http://www.w3.org/1999/xhtml" />Sorry aber der ganze Text ist eigentlich nonsense... Du / Ihr widersprecht euch eigentlich immer wieder.<br xmlns="http://www.w3.org/1999/xhtml" /><br xmlns="http://www.w3.org/1999/xhtml" />Ihr wollt mehr fürs soloplay, weil gruppenspieler schneller leveln etc. sagt gleichzeitig aber, es ist egal was gruppenspieler erreichen im gegensatz zu euch.<br xmlns="http://www.w3.org/1999/xhtml" /><br xmlns="http://www.w3.org/1999/xhtml" />warum vergleicht ihr also zb die xp mit dem groupplay? wenn ihr nicht auf rankings groupplay achterbzw es euch nicht wichtig ist.<br xmlns="http://www.w3.org/1999/xhtml/><br xmlns="http://www.w3.org/1999/xhtml" />eure ganzen aussagen machen keinen sinn, merkt ihr das nicht?</div> +varStringToCopy varStringToCopy.replace(/'/g, "\\'");
-    <script type="text/javascript" src="tablefunctions.js"></script> +
-</body> +
-</html>+
 </code> </code>
 +
 +Quelle: [[http://stackoverflow.com/questions/15087497/escaping-single-quotes-in-javascript-string-for-javascript-evaluation|Link]
  
 {{tag>[Greasemonkey Blizzard unfertig]}} {{tag>[Greasemonkey Blizzard unfertig]}}
anwendungen_und_sonstiges/greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage.1442852542.txt.gz · Zuletzt geändert: 2016/04/02 00:37 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki