Best JavaScript code snippet using playwright-internal
ap_editor.js
Source:ap_editor.js
...74 return this.el.innerHTML;75 },76 // replace the innerHTML of the element (maintains a history)77 replaceHtml: function (html) {78 this.restoreSelection();79 this.cmd("selectAll");80 this.cmd("insertHTML", html);81 window.getSelection().removeAllRanges();82 },83 // get the currently selected range84 getCurrentRange: function () {85 var sel = window.getSelection();86 if (sel.getRangeAt && sel.rangeCount) {87 return sel.getRangeAt(0);88 }89 },90 // save the user selection91 saveSelection: function () {92 this.savedRange = this.getCurrentRange();93 return this;94 },95 // restore the user selection96 restoreSelection: function () {97 var selection = window.getSelection();98 if (this.savedRange) {99 try {100 selection.removeAllRanges();101 }102 catch (ex) {103 document.body.createTextRange().select();104 document.selection.empty();105 }106 selection.addRange(this.savedRange);107 }108 return this;109 },110 // whether or not there is a selection111 hasSelection: function () {112 return (this.savedRange !== undefined) && !this.savedRange.collapsed;113 },114 // get the nearest container element for the current range.115 getElement: function () {116 var el, range = this.getCurrentRange();117 if (range) {118 // normalize Firefox & Chrome tag selection119 el = this.getSelectedElement(range);120 if (el.nodeType !== 1)121 el = range.commonAncestorContainer;122 }123 return el;124 },125 // find the closest element of selection for selector.126 closest: function (selector) {127 var el = this.getElement();128 if (!el)129 return;130 var matches = el.matches || el.webkitMatchesSelector || el.mozMatchesSelector || el.msMatchesSelector;131 while (el && el !== this.el && this.el.contains(el)) {132 if (matches.call(el, selector))133 break;134 el = el.parentNode;135 }136 return (el !== this.el) ? el : undefined;137 },138 // gets the selections element hierarchy139 parents: function () {140 var current = this.getCurrentRange();141 var parents = [];142 if (current) {143 var parent = current.commonAncestorContainer;144 // ensure we're starting with an ELEMENT_NODE145 if (parent.nodeType !== 1)146 parent = parent.parentNode;147 while (parent && parent !== this.el && this.el.contains(parent)) {148 parents.push(parent);149 parent = parent.parentNode;150 }151 }152 return parents;153 },154 // selects an element155 selectElement: function (el) {156 var sel = window.getSelection();157 sel.removeAllRanges();158 var range = document.createRange();159 range.selectNode(el);160 sel.addRange(range);161 this.saveSelection();162 return this;163 },164 restart: function () {165 var range = document.createRange();166 range.selectNode(this.el);167 range.startOffset = 1;168 },169 getSelectedElement: function (range) {170 var selectedElement;171 if (this.rangeSelectsSingleNode(range)) {172 // Selection encompasses a single element173 selectedElement = range.startContainer.childNodes[range.startOffset];174 }175 else if (range.startContainer.nodeType === 3) {176 // Selection range starts inside a text node, so get its parent177 selectedElement = range.startContainer.parentNode;178 }179 else {180 // Selection starts inside an element181 selectedElement = range.startContainer;182 }183 return selectedElement;184 },185 rangeSelectsSingleNode: function (range) {186 var startNode = range.startContainer;187 return startNode === range.endContainer && startNode.hasChildNodes() && range.endOffset === range.startOffset + 1;188 }189 };190 var self = this;191 //var proto2 = new editor().proto;192 Vue.component("ApEditor", {193 created: function () {194 //var filePath = new ap.scripts.common.acbbcommon().GetPath("/ap_widget_ui/editor/templates/editor_template.html");195 this.$options.template = new ap.utility.ajax.ajaxPackage().ajax_getcontent("../../editor/views/editor_template.html");196 },197 props: {198 value: {199 default: ""200 }201 },202 data: function () {203 return {204 htmlstate: true,205 showfontsize: false,206 fontsize: [207 { "text": "Small", "value": "2" },208 { "text": "Normal", "value": "3" },209 { "text": "Medium", "value": "4" },210 { "text": "Large", "value": "5" },211 { "text": "Huge", "value": "6" }212 ],213 showfontname: false,214 fontname: [215 { "text": "å®ä½", "value": "å®ä½" },216 { "text": "é»ä½", "value": "é»ä½" },217 { "text": "楷ä½", "value": "楷ä½" },218 { "text": "微软é
é»", "value": "微软é
é»" },219 { "text": "Arial", "value": "Arial" },220 { "text": "Verdana", "value": "Verdana" },221 { "text": "Georgia", "value": "Georgia" },222 { "text": "Times New Roman", "value": "Times New Roman" },223 { "text": "Microsoft JhengHei", "value": "Microsoft JhengHei" },224 { "text": "Trebuchet MS", "value": "Trebuchet MS" },225 { "text": "Courier New", "value": "Courier New" },226 { "text": "Impact", "value": "Impact" },227 { "text": "Comic Sans MS", "value": "Comic Sans MS" },228 { "text": "Consolas", "value": "Consolas" }229 ],230 showforecolor: false,231 forecolor: [{ name: 'Black', style: 'background-color:#000000' },232 { name: 'MediumBlack', style: 'background-color:#444444' },233 { name: 'LightBlack', style: 'background-color:#666666' },234 { name: 'DimBlack', style: 'background-color:#999999' },235 { name: 'Gray', style: 'background-color:#CCCCCC' },236 { name: 'DimGray', style: 'background-color:#EEEEEE' },237 { name: 'LightGray', style: 'background-color:#F3F3F3' },238 { name: 'White', style: 'background-color:#FFFFFF' },239 //{ name: 'libreak', style: null },240 { name: 'Red', style: 'background-color:#FF0000' },241 { name: 'Orange', style: 'background-color:#FF9900' },242 { name: 'Yellow', style: 'background-color:#FFFF00' },243 { name: 'Lime', style: 'background-color:#00FF00' },244 { name: 'Cyan', style: 'background-color:#00FFFF' },245 { name: 'Blue', style: 'background-color:#0000FF' },246 { name: 'BlueViolet', style: 'background-color:#8A2BE2' },247 { name: 'Magenta', style: 'background-color:#FF00FF' },248 //{ name: 'libreak', style: null },249 { name: 'LightPink', style: 'background-color:#FFB6C1' },250 { name: 'Bisque', style: 'background-color:#FCE5CD' },251 { name: 'BlanchedAlmond', style: 'background-color:#FFF2CC' },252 { name: 'LightLime', style: 'background-color:#D9EAD3' },253 { name: 'LightCyan', style: 'background-color:#D0E0E3' },254 { name: 'AliceBlue', style: 'background-color:#CFE2F3' },255 { name: 'Lavender', style: 'background-color:#D9D2E9' },256 { name: 'Thistle', style: 'background-color:#EAD1DC' },257 { name: 'LightCoral', style: 'background-color:#EA9999' },258 { name: 'Wheat', style: 'background-color:#F9CB9C' },259 { name: 'NavajoWhite', style: 'background-color:#FFE599' },260 { name: 'DarkSeaGreen', style: 'background-color:#B6D7A8' },261 { name: 'LightBlue', style: 'background-color:#A2C4C9' },262 { name: 'SkyBlue', style: 'background-color:#9FC5E8' },263 { name: 'LightPurple', style: 'background-color:#B4A7D6' },264 { name: 'PaleVioletRed', style: 'background-color:#D5A6BD' },265 { name: 'IndianRed', style: 'background-color:#E06666' },266 { name: 'LightSandyBrown', style: 'background-color:#F6B26B' },267 { name: 'Khaki', style: 'background-color:#FFD966' },268 { name: 'YellowGreen', style: 'background-color:#93C47D' },269 { name: 'CadetBlue', style: 'background-color:#76A5AF' },270 { name: 'DeepSkyBlue', style: 'background-color:#6FA8DC' },271 { name: 'MediumPurple', style: 'background-color:#8E7CC3' },272 { name: 'MediumVioletRed', style: 'background-color:#C27BA0' },273 { name: 'Crimson', style: 'background-color:#CC0000' },274 { name: 'SandyBrown', style: 'background-color:#E69138' },275 { name: 'Gold', style: 'background-color:#F1C232' },276 { name: 'MediumSeaGreen', style: 'background-color:#6AA84F' },277 { name: 'Teal', style: 'background-color:#45818E' },278 { name: 'SteelBlue', style: 'background-color:#3D85C6' },279 { name: 'SlateBlue', style: 'background-color:#674EA7' },280 { name: 'VioletRed', style: 'background-color:#A64D79' },281 { name: 'Brown', style: 'background-color:#990000' },282 { name: 'Chocolate', style: 'background-color:#B45F06' },283 { name: 'GoldenRod', style: 'background-color:#BF9000' },284 { name: 'Green', style: 'background-color:#38761D' },285 { name: 'SlateGray', style: 'background-color:#134F5C' },286 { name: 'RoyalBlue', style: 'background-color:#0B5394' },287 { name: 'Indigo', style: 'background-color:#351C75' },288 { name: 'Maroon', style: 'background-color:#741B47' },289 { name: 'DarkRed', style: 'background-color:#660000' },290 { name: 'SaddleBrown', style: 'background-color:#783F04' },291 { name: 'DarkGoldenRod', style: 'background-color:#7F6000' },292 { name: 'DarkGreen', style: 'background-color:#274E13' },293 { name: 'DarkSlateGray', style: 'background-color:#0C343D' },294 { name: 'Navy', style: 'background-color:#073763' },295 { name: 'MidnightBlue', style: 'background-color:#20124D' },296 { name: 'DarkMaroon', style: 'background-color:#4C1130' }]297 };298 },299 mounted: function () {300 var _this = this;301 self.proto.el = this.$el.children[1].firstChild;302 self.bindUpload();303 ap.core.ui.CONTROLS[this.$el.id]._control = this.$root.$children.filter(function (ctl, index) { return ctl.$el.id == _this.$el.id; })[0];304 },305 computed: {306 forecolorstyle: {307 get: function () { },308 set: function () { }309 }310 },311 methods: {312 clearDoc: function () {313 if (confirm("确认è¦æ¸
空åï¼")) {314 self.proto.el.innerHTML = "";315 }316 },317 doMouseout: function () {318 state = self.proto.saveSelection();319 },320 printDoc: function () {321 var oPrntWin = window.open("", "_blank", "width=450,height=470,left=400,top=100,menubar=yes,toolbar=no,location=no,scrollbars=yes");322 oPrntWin.document.open();323 oPrntWin.document.write("<!doctype html><html><head><title>Print<\/title><\/head><body onload=\"print();\">" + self.proto.el.innerHTML + "<\/body><\/html>");324 oPrntWin.document.close();325 },326 undo: function () {327 self.proto.restoreSelection().focus().undo();328 },329 redo: function () {330 self.proto.restoreSelection().focus().redo();331 },332 bold: function () {333 state.restoreSelection().bold();334 state.saveSelection();335 },336 underline: function () {337 state.restoreSelection().underline();338 state.saveSelection();339 },340 italic: function () {341 state.restoreSelection().focus().italic();342 state.saveSelection();343 },344 justifyLeft: function () {345 self.proto.restoreSelection().focus().justifyLeft();346 },347 justifyRight: function () {348 self.proto.restoreSelection().focus().justifyRight();349 },350 justifyCenter: function () {351 self.proto.restoreSelection().focus().justifyCenter();352 },353 justifyFull: function () {354 self.proto.restoreSelection().focus().justifyFull();355 },356 toggleFontSize: function () {357 this.showfontsize = !this.showfontsize;358 this.showfontname = false;359 this.showforecolor = false;360 },361 fontSize: function (val) {362 state.restoreSelection().focus().fontSize(val);363 state.saveSelection();364 },365 toggleFontName: function () {366 this.showfontname = !this.showfontname;367 this.showforecolor = false;368 this.showfontsize = false;369 },370 fontName: function (val) {371 state.restoreSelection().focus().fontName(val);372 state.saveSelection();373 },374 toggleForeColor: function () {375 this.showforecolor = !this.showforecolor;376 this.showfontname = false;377 this.showfontsize = false;378 },379 foreColor: function (val) {380 val = val.split(":")[1];381 state.restoreSelection().focus().foreColor(val);382 state.saveSelection();383 },384 backColor: function (val) {385 val = val.split(":")[1];386 self.proto.restoreSelection().focus().backColor(val);387 },388 indent: function () {389 self.proto.restoreSelection().focus().indent();390 },391 outdent: function () {392 self.proto.restoreSelection().focus().outdent();393 },394 insertOrderedList: function () {395 self.proto.restoreSelection().focus().insertOrderedList();396 },397 insertUnorderedList: function () {398 self.proto.restoreSelection().focus().insertUnorderedList();399 },400 blockquote: function () {401 if (navigator.userAgent.match(/MSIE/i)) {402 self.proto.restoreSelection().focus().indent();403 }404 else {405 self.proto.restoreSelection().focus().formatBlock('<blockquote>');406 }407 },408 video: function () {409 self.bindUploadFile();410 },411 selectall: function () {412 state.restoreSelection().selectAll();413 state.saveSelection();414 },415 removeformat: function () {416 state.restoreSelection().focus().removeFormat();417 },418 createLink: function () {419 var sLnk = prompt("请è¾å
¥è¶
é¾æ¥å°å", "http:\/\/");420 if (sLnk && sLnk !== "http://") {421 var sText = document.getSelection();422 self.proto.restoreSelection().focus().insertHTML('<a href="' + sLnk + '" target="_blank">' + sLnk + '</a>');423 }424 },425 unlink: function () {426 self.proto.restoreSelection().unlink();427 },428 toHtml: function () {429 if (this.htmlstate) {430 var editor = document.querySelector("#input-edit");431 var content = document.createTextNode(document.querySelector("#input-edit").innerHTML);432 editor.innerHTML = "";433 editor.setAttribute("contenteditable", "false");434 var pre = document.createElement('pre');435 pre.setAttribute("contenteditable", "true");436 pre.appendChild(content);437 editor.appendChild(pre);438 this.htmlstate = false;439 }440 else {441 var code = document.querySelector("#input-edit pre").innerText;442 document.querySelector("#input-edit").innerHTML = code;443 document.querySelector("#input-edit").setAttribute("contenteditable", "true");444 this.htmlstate = true;445 }446 }447 }448 });449 this.init();450 }451 editor.prototype.init = function () {452 ["bold", "italic", "copy", "cut", "paste", "delete",453 "forwardDelete", "fontName", "fontSize", "foreColor",454 "hiliteColor", "backColor", "justifyCenter", "justifyFull",455 "justifyLeft", "justifyRight", "strikeThrough", "subscript",456 "superscript", "underline", "removeFormat", "heading", "formatBlock",457 "indent", "outdent", "createLink", "unlink", "insertBrOnReturn",458 "insertHorizontalRule", "insertImage", "insertOrderedList",459 "insertUnorderedList", "insertParagraph", "insertText",460 "insertHTML", "undo", "redo", "selectAll"].forEach(function (command) {461 this[command] = this.cmd.bind(this, command);462 }, this.proto);463 };464 editor.prototype.bindUpload = function () {465 var self = this;466 var CRUpload = new ap.utility.upload.UploadPackage();467 CRUpload.resourcesUpdate("ImgUpload", acbbBasicConfig.GetValue("name"), "*.jpg;*.png;*.bmp", new ap.scripts.common.acbbcommon().GetPath("/ap_utility/upload/filepicture.html"), function (file, response) {468 var downloadurl = acbbBasicConfig.GetPluginValue("download") + "/GetFile?filePath=" + acbbBasicConfig.GetValue("name") + "/&fileName=";469 var path = downloadurl + response.NewFileName;470 self.proto.restoreSelection().focus().insertHTML("<img src='" + path + "' />");471 }, null);472 };473 editor.prototype.bindUploadFile = function () {474 var self = this;475 var CRUpload = new ap.widget.acbbfunction.UploadPackage();476 CRUpload.resourcesUpdate("ImgUpload", acbbBasicConfig.GetValue("name"), "*.mp4;*.avi", new ap.scripts.common.acbbcommon().GetPath("/ap_widget_function/upload/uploadResources.html"), function (file, response) {477 var downloadurl = acbbBasicConfig.GetPluginValue("download") + "/GetFile?filePath=" + acbbBasicConfig.GetValue("name") + "/&fileName=";478 var path = downloadurl + response.NewFileName;479 self.proto.restoreSelection().focus().insertHTML("<br/>");480 var vedio = '<video controls="controls"><source src="' + path + '" type="video/mp4; codecs=avc1.42E01E, mp4a.40.2" /></video>';481 //var embed = '<embed src="'+path+'" autostart= true >';482 self.proto.restoreSelection().focus().insertHTML(vedio);483 }, null);484 };485 return editor;486 })(ap.core.ui);487 widget.editor = editor;488 })(widget = ui.widget || (ui.widget = {}));489 })(ui = ap.ui || (ap.ui = {}));490})(ap || (ap = {}));...
ab-alloc-common.js
Source:ab-alloc-common.js
...16 localRestoreSelection();17 },18 chartPanel_onAddYear : function() {19 addPeriod("YEAR",1,'allocGroupConsole','gp.date_start','gp.date_start');20 allocStackController.restoreSelection();21 },22 chartPanel_onSubtractYear : function() {23 addPeriod("YEAR",-1,'allocGroupConsole','gp.date_start','gp.date_start');24 allocStackController.restoreSelection();25 },26 chartPanel_onAddMonth : function() {27 addPeriod("MONTH",1,'allocGroupConsole','gp.date_start','gp.date_start');28 allocStackController.restoreSelection();29 },30 chartPanel_onSubtractMonth : function() {31 addPeriod("MONTH",-1,'allocGroupConsole','gp.date_start','gp.date_start');32 allocStackController.restoreSelection();33 },34 dvCostPieChart_onAddYear : function() {35 addPeriod("YEAR",1,'allocGroupConsole','gp.date_start','gp.date_start');36 allocCostPieController.restoreSelection();37 },38 dvCostPieChart_onSubtractYear : function() {39 addPeriod("YEAR",-1,'allocGroupConsole','gp.date_start','gp.date_start');40 allocCostPieController.restoreSelection();41 },42 dvCostPieChart_onAddMonth : function() {43 addPeriod("MONTH",1,'allocGroupConsole','gp.date_start','gp.date_start');44 allocCostPieController.restoreSelection();45 },46 dvCostPieChart_onSubtractMonth : function() {47 addPeriod("MONTH",-1,'allocGroupConsole','gp.date_start','gp.date_start');48 allocCostPieController.restoreSelection();49 },50 dpAnalysis_onAddYear : function() {51 addPeriod("YEAR",1,'allocGroupConsole','gp.date_start','gp.date_start');52 allocDpDvController.restoreSelection();53 },54 dpAnalysis_onSubtractYear : function() {55 addPeriod("YEAR",-1,'allocGroupConsole','gp.date_start','gp.date_start');56 allocDpDvController.restoreSelection();57 },58 dpAnalysis_onAddMonth : function() {59 addPeriod("MONTH",1,'allocGroupConsole','gp.date_start','gp.date_start');60 allocDpDvController.restoreSelection();61 },62 dpAnalysis_onSubtractMonth : function() {63 addPeriod("MONTH",-1,'allocGroupConsole','gp.date_start','gp.date_start');64 allocDpDvController.restoreSelection();65 },66 allocCostConsole_onAddYear : function() {67 addPeriod("YEAR",1,'allocCostConsole','cost_tran_recur.date_start','cost_tran_recur.date_start');68 allocListCostController.restoreSelection();69 },70 allocCostConsole_onSubtractYear : function() {71 addPeriod("YEAR",-1,'allocCostConsole','cost_tran_recur.date_start','cost_tran_recur.date_start');72 allocListCostController.restoreSelection();73 },74 allocCostConsole_onAddMonth : function() {75 addPeriod("MONTH",1,'allocCostConsole','cost_tran_recur.date_start','cost_tran_recur.date_start');76 allocListCostController.restoreSelection();77 },78 allocCostConsole_onSubtractMonth : function() {79 addPeriod("MONTH",-1,'allocCostConsole','cost_tran_recur.date_start','cost_tran_recur.date_start');80 allocListCostController.restoreSelection();81 },82 recalculateCostsSingle: function() {83 var reviewDate = this.allocGroupConsole.getFieldValue('gp.date_start');84 if ((reviewDate!="") && (document.getElementById("autoCalculateCosts").checked)) {85 calculateCostsSingle(this.tabs.wizard.getBl());86 }87 },88 recalculateCostsAll: function() {89 var reviewDate = this.allocGroupConsole.getFieldValue('gp.date_start');90 if ((reviewDate!="") && (document.getElementById("autoCalculateCosts").checked)) {91 calculateCostsAll();92 }93 },94 getConsoleRestriction: function() {...
bootstrap-wysiwyg.js
Source:bootstrap-wysiwyg.js
...93 }94 });95 },96 markSelection = function (input, color) {97 restoreSelection();98 if (document.queryCommandSupported('hiliteColor')) {99 document.execCommand('hiliteColor', 0, color || 'transparent');100 }101 saveSelection();102 input.data(options.selectionMarker, color);103 },104 bindToolbar = function (toolbar, options) {105 toolbar.find(toolbarBtnSelector).click(function () {106 restoreSelection();107 editor.focus();108 execCommand($(this).data(options.commandRole));109 saveSelection();110 });111 toolbar.find('[data-toggle=dropdown]').click(restoreSelection);112 toolbar.find('input[type=text][data-' + options.commandRole + ']').on('webkitspeechchange change', function () {113 var newValue = this.value; /* ugly but prevents fake double-calls due to selection restoration */114 this.value = '';115 restoreSelection();116 if (newValue) {117 editor.focus();118 execCommand($(this).data(options.commandRole), newValue);119 }120 saveSelection();121 }).on('focus', function () {122 var input = $(this);123 if (!input.data(options.selectionMarker)) {124 markSelection(input, options.selectionColor);125 input.focus();126 }127 }).on('blur', function () {128 var input = $(this);129 if (input.data(options.selectionMarker)) {130 markSelection(input, false);131 }132 });133 toolbar.find('input[type=file][data-' + options.commandRole + ']').change(function () {134 restoreSelection();135 if (this.type === 'file' && this.files && this.files.length > 0) {136 insertFiles(this.files);137 }138 saveSelection();139 this.value = '';140 });141 },142 initFileDrops = function () {143 editor.on('dragenter dragover', false)144 .on('drop', function (e) {145 var dataTransfer = e.originalEvent.dataTransfer;146 e.stopPropagation();147 e.preventDefault();148 if (dataTransfer && dataTransfer.files && dataTransfer.files.length > 0) {...
tiny_mce_popup.js
Source:tiny_mce_popup.js
...46 return this.editor.getLang(n, dv);47 },4849 execCommand : function(cmd, ui, val, a) {50 this.restoreSelection();51 return this.editor.execCommand(cmd, ui, val, a || {skip_focus : 1});52 },5354 resizeToInnerSize : function() {55 var t = this, n, b = document.body, vp = t.dom.getViewPort(window), dw, dh;5657 dw = t.getWindowArg('mce_width') - vp.w;58 dh = t.getWindowArg('mce_height') - vp.h;5960 if (t.isWindow)61 window.resizeBy(dw, dh);62 else63 t.editor.windowManager.resizeBy(dw, dh, t.id);64 },6566 executeOnLoad : function(s) {67 this.onInit.add(function() {68 eval(s);69 });70 },7172 storeSelection : function() {73 this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark('simple');74 },7576 restoreSelection : function() {77 var t = tinyMCEPopup;7879 if (!t.isWindow && tinymce.isIE)80 t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);81 },8283 requireLangPack : function() {84 var u = this.getWindowArg('plugin_url') || this.getWindowArg('theme_url');8586 if (u)87 document.write('<script type="text/javascript" src="' + u + '/langs/' + this.editor.settings.language + '_dlg.js' + '"></script>');88 },8990 pickColor : function(e, element_id) {91 this.execCommand('mceColorPicker', true, {92 color : document.getElementById(element_id).value,93 func : function(c) {94 document.getElementById(element_id).value = c;9596 try {97 document.getElementById(element_id).onchange();98 } catch (ex) {99 // Try fire event, ignore errors100 }101 }102 });103 },104105 openBrowser : function(element_id, type, option) {106 tinyMCEPopup.restoreSelection();107 this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);108 },109110 close : function() {111 var t = this;112113 t.dom = t.dom.doc = null; // Cleanup114 t.editor.windowManager.close(window, t.id);115 },116117 // Internal functions 118119 _restoreSelection : function() {120 var e = window.event.srcElement;121122 if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))123 tinyMCEPopup.restoreSelection();124 },125126/* _restoreSelection : function() {127 var e = window.event.srcElement;128129 // If user focus a non text input or textarea130 if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')131 tinyMCEPopup.restoreSelection();132 },*/133134 _onDOMLoaded : function() {135 var t = this, ti = document.title, bm, h;136137 // Translate page138 h = document.body.innerHTML;139140 // Replace a=x with a="x" in IE141 if (tinymce.isIE)142 h = h.replace(/ (value|title|alt)=([^\s>]+)/gi, ' $1="$2"');143144 document.body.innerHTML = t.editor.translate(h);145 document.title = ti = t.editor.translate(ti);146 document.body.style.display = '';147148 // Restore selection in IE when focus is placed on a non textarea or input element of the type text149 if (tinymce.isIE)150 document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);151152 t.restoreSelection();153154 // Call onInit155 tinymce.each(t.listeners, function(o) {156 o.func.call(o.scope, t.editor);157 });158159 t.resizeToInnerSize();160161 if (t.isWindow)162 window.focus();163 else164 t.editor.windowManager.setTitle(ti, t.id);165166 if (!tinymce.isIE && !t.isWindow) {
...
upload.js
Source:upload.js
...6 savedSelection : null7 }8 var insertListener = _.once(function( $rootScope ){9 $rootScope.$on('node.create:upload.insert',function(e,file){10 actionData.restoreSelection( actionData.savedSelection )11 actionData.editor.wrapSelection('insertImage', window.location.origin + '/media/'+file.id+'/download', true);12 //this maybe a little confusion here, we have to save our selection manually, or we may lose selection after insert one image13 actionData.savedSelection = rangy.saveSelection()14 actionData.restoreSelection = rangy.restoreSelection15 })16 $rootScope.$on('node.create:upload.complete',function(){17 actionData.$deferred.resolve()18 })19 })20 $provide.decorator('taOptions', ['taRegisterTool', '$delegate', function (taRegisterTool, taOptions) {21 taRegisterTool('uploadFile', {22 iconclass: "fa fa-cloud-upload",23 action: function ($deferred,restoreSelection) {24 var self = this...
rangeUtil.js
Source:rangeUtil.js
...68 .replace(/</g, '<')69 .replace(/>/g, '>')70 .replace(/"/g, '"')71 },72 restoreSelection(...args) {73 return restoreSelection.call(null, ...args)74 },75 saveSelection(...args) {76 return saveSelection.call(null, ...args)77 },78 replaceSelection(...args) {79 return replaceSelection.call(null, ...args)80 }...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.click('input[name="q"]');7 await page.fill('input[name="q"]', 'Playwright');8 await page.evaluate(() => {9 const selection = window.getSelection();10 selection.removeAllRanges();11 const range = document.createRange();12 range.setStart(document.querySelector('input[name="q"]'), 4);13 range.setEnd(document.querySelector('input[name="q"]'), 4);14 selection.addRange(range);15 });
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.type('input[name=q]', 'Hello World');7 await page.keyboard.press('Enter');8 await page.waitForSelector('div.g');9 await page.click('div.g');10 await page.goBack();11 await page.evaluate(() => {12 window.restoreSelection();13 });14 await page.type('input[name=q]', 'Hello World');15 await page.keyboard.press('Enter');16 await page.waitForSelector('div.g');17 await page.click('div.g');18 await page.goBack();19 await page.goBack();20 await page.evaluate(() => {21 window.restoreSelection();22 });23 await page.type('input[name=q]', 'Hello World');24 await page.keyboard.press('Enter');25 await page.waitForSelector('div.g');26 await page.click('div.g');27 await page.goBack();28 await page.goBack();29 await page.goBack();30 await page.evaluate(() => {31 window.restoreSelection();32 });33 await page.type('input[name=q]', 'Hello World');34 await page.keyboard.press('Enter');35 await page.waitForSelector('div.g');36 await page.click('div.g');37 await page.goBack();38 await page.goBack();39 await page.goBack();40 await page.goBack();41 await page.evaluate(() => {42 window.restoreSelection();43 });44 await page.type('input[name=q]', 'Hello World');45 await page.keyboard.press('Enter');46 await page.waitForSelector('div.g');47 await page.click('div.g');48 await page.goBack();49 await page.goBack();50 await page.goBack();51 await page.goBack();52 await page.goBack();53 await page.evaluate(() => {54 window.restoreSelection();55 });56 await page.type('input[name=q]', 'Hello World');57 await page.keyboard.press('Enter');58 await page.waitForSelector('div.g');59 await page.click('div.g');60 await page.goBack();61 await page.goBack();62 await page.goBack();63 await page.goBack();64 await page.goBack();65 await page.goBack();66 await page.evaluate(() => {67 window.restoreSelection();68 });69 await page.type('input[name=q]', 'Hello World');70 await page.keyboard.press('Enter');71 await page.waitForSelector('div.g');
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.click('input[title="Search"]');7 await page.type('input[title="Search"]', 'Hello World');
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.waitForSelector('input[name=q]');7 await page.fill('input[name=q]', 'Hello World!');8 await page.keyboard.press('Enter');9 await page.waitForSelector('h3');10 const handle = await page.$('h3');11 await handle.click();12 await page.waitForSelector('h1');13 const restore = await page.evaluateHandle(() => {14 return window.restoreSelection;15 });16 await restore.evaluate((restore) => {17 restore();18 });19 await page.keyboard.press('Enter');20 await page.waitForSelector('h3');21 await browser.close();22})();23const selection = window.getSelection();24const range = document.createRange();25range.setStart(document.querySelector('h3'), 0);26range.setEnd(document.querySelector('h3'), 0);27selection.removeAllRanges();28selection.addRange(range);29const selection = window.getSelection();30const range = document.createRange();31range.setStart(document.querySelector('h3'), 0);32range.setEnd(document.querySelector('h3'), 0);33selection.removeAllRanges();34selection.addRange(range);35const selection = window.getSelection();36const range = document.createRange();37range.setStart(document.querySelector('h3'), 0);38range.setEnd(document.querySelector('h3'), 0);39selection.removeAllRanges();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.evaluate(() => {7 const sel = window.getSelection();8 const range = document.createRange();9 range.selectNodeContents(document.querySelector('body'));10 sel.removeAllRanges();11 sel.addRange(range);12 });13 await page.evaluate(() => {14 const sel = window.getSelection();15 const range = document.createRange();16 range.selectNodeContents(document.querySelector('body'));17 sel.removeAllRanges();18 sel.addRange(range);19 });20 await page.evaluate(() => {21 const sel = window.getSelection();22 const range = document.createRange();23 range.selectNodeContents(document.querySelector('body'));24 sel.removeAllRanges();25 sel.addRange(range);26 });27 await page.evaluate(() => {28 window.restoreSelection();29 });30 await page.screenshot({ path: `example.png` });31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.evaluate(() => {39 const sel = window.getSelection();40 const range = document.createRange();41 range.selectNodeContents(document.querySelector('body'));
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.click('#docs-button');7 await page.click('text=Docs');8 await page.evaluate(() => {9 window.restoreSelection();10 });11 await page.screenshot({ path: `example.png` });12 await browser.close();13})();
Using AI Code Generation
1const { restoreSelection } = require('playwright/lib/server/dom.js');2const { firefox } = require('playwright');3(async () => {4 const browser = await firefox.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.click('input[name="q"]');8 await page.keyboard.type('playwright');9 await page.click('input[name="btnK"]');10 await page.waitForSelector('text=Playwright is a Node library to automate');11 await page.click('text=Playwright is a Node library to automate');12 await page.waitForSelector('text=Playwright is a Node library to automate');13 await page.click('text=Playwright is a Node library to automate');14 await page.waitForSelector('text=Playwright is a Node library to automate');15 await page.click('text=Playwright is a Node library to automate');16 await page.waitForSelector('text=Playwright is a Node library to automate');17 await page.click('text=Playwright is a Node library to automate');18 await page.waitForSelector('text=Playwright is a Node library to automate');19 await page.click('text=Playwright is a Node library to automate');20 await page.waitForSelector('text=Playwright is a Node library to automate');21 await page.click('text=Playwright is a Node library to automate');22 await page.waitForSelector('text=Playwright is a Node library to automate');23 await page.click('text=Playwright is a Node library to automate');24 await page.waitForSelector('text=Playwright is a Node library to automate');25 await page.click('text=Playwright is a Node library to automate');26 await page.waitForSelector('text=Playwright is a Node library to automate');27 await page.click('text=Playwright is a Node library to automate');28 await page.waitForSelector('text=Playwright is a Node library to automate');29 await page.click('text=Playwright is a Node library to automate');30 await page.waitForSelector('text=Playwright is a Node library to automate');31 await page.click('text=Playwright is a Node library to automate');32 await page.waitForSelector('text
Using AI Code Generation
1const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2restoreSelection();3const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');4restoreSelection();5const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');6restoreSelection();7const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');8restoreSelection();9const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');10restoreSelection();11const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');12restoreSelection();13const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');14restoreSelection();15const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');16restoreSelection();17const { restoreSelection } = require('playwright/lib/server/supplements/recorder/recorderSupplement');18restoreSelection();
Using AI Code Generation
1const { restoreSelection } = require('playwright-core/lib/client/selection');2const { test, expect } = require('@playwright/test');3const { restoreSelection } = require('playwright-core/lib/client/selection');4test('example test', async ({ page }) => {5 const selector = await page.$('text=Get started');6 const restoredSelector = await restoreSelection(page, selector);7 await expect(restoredSelector).toHaveText('Get started');8});
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!