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

Nächste Überarbeitung
Vorhergehende Überarbeitung
anwendungen_und_sonstiges:greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage [2015/09/18 16:05] – angelegt 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>
  
-{{tag>[Greasemonkey Blizzard]}}+===== Interessante Infos ===== 
 + 
 +==== Neues Fenster in Javascript öffnen ==== 
 + 
 +Vielleicht hilft dieser Code-Schnipsel weiter: 
 +<code Javascript> 
 +function FensterOeffnen (Adresse)  
 +{  
 +  MeinFenster = window.open(Adresse, "Zweitfenster", "width=300,height=400,left=100,top=200"); 
 +  MeinFenster.document.write("<p>ein neues Fenster!<br>(Besser wäre aber eine dialog-Box!)</p>"); 
 +  MeinFenster.focus(); 
 +
 +</code> 
 + 
 +Quelle: [[https://wiki.selfhtml.org/wiki/JavaScript/Objekte/window|Link]] 
 + 
 +==== Alle Single-Quotes in einem String Escapen ==== 
 + 
 +<code Javascript> 
 +varStringToCopy = varStringToCopy.replace(/'/g, "\\'"); 
 +</code> 
 + 
 +Quelle: [[http://stackoverflow.com/questions/15087497/escaping-single-quotes-in-javascript-string-for-javascript-evaluation|Link] 
 + 
 +{{tag>[Greasemonkey Blizzard unfertig]}}
anwendungen_und_sonstiges/greasemonkey_-_blizzard-forumbeitrag_zu_zwischenablage.1442585142.txt.gz · Zuletzt geändert: 2016/04/02 00:37 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki