JavaScript Änderungen für kommende Version [Zusammenfassung] (German / Deutsch)
Hallo,
hier mal die Änderungen in einem Beitrag, die in der kommenden Foren-Version integriert werden sollten.
main.js
document.createInputElementWithAttributes = function(tagName, attributes, parentElement) { if (tagName.toLowerCase() != "input" && tagName.toLowerCase() != "button") return document.createElementWithAttributes(tagName, attributes, parentElement); var type = attributes["type"] || false; var name = attributes["name"] || false; var el = false; if (type) { try { el = document.createElement(tagName); el.type = type; if (name) el.name = name; } catch(err) { var attr = " type=" + type +(name?" name=" + name : ""); //el = document.createElement('<'+tagName+' type="'+type+'">'); el = document.createElement("<" + tagName + attr + ">"); } } el = el || document.createElement(tagName); for (var attribute in attributes) if (attribute.toLowerCase() != "type" && attribute.toLowerCase() != "name") el[attribute] = attributes[attribute]; if (parentElement) parentElement.appendChild(el); return el; };
_______________________________________________________________________
posting.js
var createBBCodeButton = function(button, list) { var bbCodeButton = null; var bname=button&&button.name?button.name.toLowerCase():""; //switch(button.name.toLowerCase()) { switch(bname) { case "link": bbCodeButton = new BBCodeLinkButton( button ); break; case "img": if (list && list.length > 1) bbCodeButton = new BBCodeOptionButton(button, list, lang["bbcode_image_url"], "http://" ); else bbCodeButton = new BBCodePromtButton( button, lang["bbcode_image_url"], "http://" ); break; case "color": bbCodeButton = new BBCodeColorChooserButton( button ); break; case "list": bbCodeButton = new BBCodeListButton( button ); break; case "flash": bbCodeButton = new BBCodePopUpButton( button, "index.php?mode=insert_flash", settings["flash_popup_width"], settings["flash_popup_height"]); break; case "upload": bbCodeButton = new BBCodePopUpButton( button, "index.php?mode=upload_image", settings["upload_popup_width"], settings["upload_popup_height"]); break; case "tex": bbCodeButton = new BBCodePromtButton( button, lang["bbcode_tex_code"] ); break; default: if (button.isSmilie && list && list.length > 1) bbCodeButton = new BBCodeSmilieButton( button, list ); else if (button.isSmilie) bbCodeButton = new BBCodeSingleSmilieButton( button ); else if (list && list.length > 1) bbCodeButton = new BBCodeOptionButton( button, list ); else bbCodeButton = new BBCodeButton( button ); break; } return bbCodeButton; };
_______________________________________________________________________
Ferner hatte Auge noch ein Feature angeregt.
function BBCodeLinkButton(el) { this.constructor(el); var link_bb_code = "link"; var regExpURI = new RegExp(/[http|https|ftp|ftps]:\/\/[a-zA-Z0-9-.][a-zA-Z0-9-.]+(S+)?/); var regExpFID = new RegExp(/[?|&]id=([0-9]+)/); var regExpINT = new RegExp(/(^[0-9]+$)/); var forumURI = window.location.hostname + window.location.pathname; this.insertCode = function(obj) { if (!this.canInsert()) return; var buttonGroup = this.getButtonGroup(); var txtarea = buttonGroup.getTextArea(); var selectionRange = txtarea.getSelection().trim(); var insert_link = (regExpURI.test( selectionRange ))?window.prompt(lang["bbcode_link_url"], selectionRange):window.prompt(lang["bbcode_link_url"],"http://"); if (!insert_link || insert_link == '' || insert_link == "http://") return; var msgQuery = insert_link.indexOf(forumURI) > 0 ? regExpFID.exec(insert_link) : regExpINT.exec(insert_link); if (insert_link.indexOf("mode=page") < 0 && insert_link.indexOf("mode=contact") < 0 && msgQuery != null) { link_bb_code = "msg"; insert_link = msgQuery[1]; } else link_bb_code = "link"; if (selectionRange == '' || regExpURI.test( selectionRange )) selectionRange = window.prompt(lang["bbcode_link_text"], ""); if (selectionRange != null) { if(selectionRange != '') txtarea.insertTextRange( "["+link_bb_code+"=" + insert_link + "]" + selectionRange + "[/"+link_bb_code+"]" ); else txtarea.insertTextRange( "["+link_bb_code+"]" + insert_link + "[/"+link_bb_code+"]" ); } }; }
Schöne Grüße
Micha
--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences