fix endsWith problem
This commit is contained in:
parent
22c25cc47f
commit
23b656ccc7
|
@ -135,7 +135,7 @@
|
|||
}, {
|
||||
key: 'render',
|
||||
value: function render() {
|
||||
return '\n <div>\n {{{img}}}\n <h1 onclick={function(e){\n console.log(this)\n console.log(e)\n console.log(\'test \\\' test "double quote"\')\n console.log("test \\"")\n }}>Hello, {{name}}!</h1>\n </div>\n \t\t';
|
||||
return '\n <div>\n {{{img}}}\n <h1 onclick={function(e){\n console.log(this)\n console.log(e)\n console.log(\'test \\\' test "double quote"\')\n console.log("test \\"")\n alert(e.type)\n }}>Hello, {{name}}!</h1>\n </div>\n \t\t';
|
||||
}
|
||||
}]);
|
||||
|
||||
|
@ -1746,6 +1746,14 @@
|
|||
return unsafe.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
||||
}
|
||||
|
||||
function endsWith(str, end) {
|
||||
if (String.prototype.endsWith) {
|
||||
return String.prototype.endsWith.call(str, end);
|
||||
} else {
|
||||
return str.substr(str.length - 1, 1) === end;
|
||||
}
|
||||
}
|
||||
|
||||
function scopedEvent(tpl, id) {
|
||||
return tpl.replace(/<[\s\S]*?[^=]>/g, function (item) {
|
||||
return item.replace(/on(abort|blur|cancel|canplay|canplaythrough|change|click|close|contextmenu|cuechange|dblclick|drag|dragend|dragenter|dragleave|dragover|dragstart|drop|durationchange|emptied|ended|error|focus|input|invalid|keydown|keypress|keyup|load|loadeddata|loadedmetadata|loadstart|mousedown|mouseenter|mouseleave|mousemove|mouseout|mouseover|mouseup|mousewheel|pause|play|playing|progress|ratechange|reset|resize|scroll|seeked|seeking|select|show|stalled|submit|suspend|timeupdate|toggle|volumechange|waiting|autocomplete|autocompleteerror|beforecopy|beforecut|beforepaste|copy|cut|paste|search|selectstart|wheel|webkitfullscreenchange|webkitfullscreenerror|touchstart|touchmove|touchend|touchcancel|pointerdown|pointerup|pointercancel|pointermove|pointerover|pointerout|pointerenter|pointerleave|Abort|Blur|Cancel|CanPlay|CanPlayThrough|Change|Click|Close|ContextMenu|CueChange|DblClick|Drag|DragEnd|DragEnter|DragLeave|DragOver|DragStart|Drop|DurationChange|Emptied|Ended|Error|Focus|Input|Invalid|KeyDown|KeyPress|KeyUp|Load|LoadedData|LoadedMetadata|LoadStart|MouseDown|MouseEnter|MouseLeave|MouseMove|MouseOut|MouseOver|MouseUp|MouseWheel|Pause|Play|Playing|Progress|RateChange|Reset|Resize|Scroll|Seeked|Seeking|Select|Show|Stalled|Submit|Suspend|TimeUpdate|Toggle|VolumeChange|Waiting|AutoComplete|AutoCompleteError|BeforeCopy|BeforeCut|BeforePaste|Copy|Cut|Paste|Search|SelectStart|Wheel|WebkitFullScreenChange|WebkitFullScreenError|TouchStart|TouchMove|TouchEnd|TouchCancel|PointerDown|PointerUp|PointerCancel|PointerMove|PointerOver|PointerOut|PointerEnter|PointerLeave)=('|"|{)([\s\S]*)('|"|})/g, function (eventStr, eventName, open, str, close) {
|
||||
|
@ -1757,7 +1765,7 @@
|
|||
var funcBody = '(' + str + ').bind(Omi.instances[' + id + '])(event)';
|
||||
var result = 'on' + eventName + '="new Function(\'event\', \'' + escapeHtml(safeSingleQuote(funcBody)) + '\')(event)"';
|
||||
return result.split('\n').map(function (line) {
|
||||
return line.endsWith(';') ? line : line + ';';
|
||||
return endsWith(line, ';') ? line : line + ';';
|
||||
}).join('');
|
||||
} else {
|
||||
if (!str.match(/.*?\(.*?\)/)) {
|
||||
|
|
|
@ -24,6 +24,7 @@ class Hello extends Omi.Component {
|
|||
console.log(e)
|
||||
console.log('test \\' test "double quote"')
|
||||
console.log("test \\"")
|
||||
alert(e.type)
|
||||
}}>Hello, {{name}}!</h1>
|
||||
</div>
|
||||
`;
|
||||
|
|
10
src/event.js
10
src/event.js
|
@ -20,6 +20,14 @@ function escapeHtml(unsafe) {
|
|||
.replace(/'/g, "'");
|
||||
}
|
||||
|
||||
function endsWith(str,end) {
|
||||
if (String.prototype.endsWith) {
|
||||
return String.prototype.endsWith.call(str, end);
|
||||
} else {
|
||||
return str.substr(str.length-1,1) === end;
|
||||
}
|
||||
}
|
||||
|
||||
function scopedEvent(tpl,id) {
|
||||
return tpl.replace(/<[\s\S]*?[^=]>/g, function (item) {
|
||||
return item.replace(/on(abort|blur|cancel|canplay|canplaythrough|change|click|close|contextmenu|cuechange|dblclick|drag|dragend|dragenter|dragleave|dragover|dragstart|drop|durationchange|emptied|ended|error|focus|input|invalid|keydown|keypress|keyup|load|loadeddata|loadedmetadata|loadstart|mousedown|mouseenter|mouseleave|mousemove|mouseout|mouseover|mouseup|mousewheel|pause|play|playing|progress|ratechange|reset|resize|scroll|seeked|seeking|select|show|stalled|submit|suspend|timeupdate|toggle|volumechange|waiting|autocomplete|autocompleteerror|beforecopy|beforecut|beforepaste|copy|cut|paste|search|selectstart|wheel|webkitfullscreenchange|webkitfullscreenerror|touchstart|touchmove|touchend|touchcancel|pointerdown|pointerup|pointercancel|pointermove|pointerover|pointerout|pointerenter|pointerleave|Abort|Blur|Cancel|CanPlay|CanPlayThrough|Change|Click|Close|ContextMenu|CueChange|DblClick|Drag|DragEnd|DragEnter|DragLeave|DragOver|DragStart|Drop|DurationChange|Emptied|Ended|Error|Focus|Input|Invalid|KeyDown|KeyPress|KeyUp|Load|LoadedData|LoadedMetadata|LoadStart|MouseDown|MouseEnter|MouseLeave|MouseMove|MouseOut|MouseOver|MouseUp|MouseWheel|Pause|Play|Playing|Progress|RateChange|Reset|Resize|Scroll|Seeked|Seeking|Select|Show|Stalled|Submit|Suspend|TimeUpdate|Toggle|VolumeChange|Waiting|AutoComplete|AutoCompleteError|BeforeCopy|BeforeCut|BeforePaste|Copy|Cut|Paste|Search|SelectStart|Wheel|WebkitFullScreenChange|WebkitFullScreenError|TouchStart|TouchMove|TouchEnd|TouchCancel|PointerDown|PointerUp|PointerCancel|PointerMove|PointerOver|PointerOut|PointerEnter|PointerLeave)=('|"|{)([\s\S]*)('|"|})/g, function (eventStr, eventName, open, str, close) {
|
||||
|
@ -31,7 +39,7 @@ function scopedEvent(tpl,id) {
|
|||
const funcBody = `(${str}).bind(Omi.instances[${id}])(event)`;
|
||||
const result = `on${eventName}="new Function('event', '${escapeHtml(safeSingleQuote(funcBody))}')(event)"`;
|
||||
return result.split('\n').map(function(line) {
|
||||
return line.endsWith(';') ? line : line + ';';
|
||||
return endsWith(line, ';') ? line : line + ';';
|
||||
}).join('');
|
||||
} else {
|
||||
if (!str.match(/.*?\(.*?\)/)) {
|
||||
|
|
Loading…
Reference in New Issue