update
This commit is contained in:
123
AzA/_internal/webview/js/customize.js
Normal file
123
AzA/_internal/webview/js/customize.js
Normal file
@@ -0,0 +1,123 @@
|
||||
|
||||
(function() {
|
||||
var platform = window.pywebview.platform;
|
||||
var disableText = '%(text_select)s' === 'False';
|
||||
var disableTextCss = 'body {-webkit-user-select: none; -khtml-user-select: none; -ms-user-select: none; user-select: none; cursor: default;}'
|
||||
|
||||
if (platform == 'mshtml') {
|
||||
window.alert = function(msg) {
|
||||
window.external.alert(msg);
|
||||
}
|
||||
} else if (platform == 'edgechromium') {
|
||||
window.alert = function (message) {
|
||||
window.chrome.webview.postMessage(['_pywebviewAlert', pywebview.stringify(message), 'alert']);
|
||||
}
|
||||
} else if (platform == 'gtkwebkit2') {
|
||||
window.alert = function (message) {
|
||||
window.webkit.messageHandlers.jsBridge.postMessage(pywebview.stringify({funcName: '_pywebviewAlert', params: message, id: 'alert'}));
|
||||
}
|
||||
} else if (platform == 'cocoa') {
|
||||
window.print = function() {
|
||||
window.webkit.messageHandlers.browserDelegate.postMessage('print');
|
||||
}
|
||||
} else if (platform === 'qtwebengine') {
|
||||
window.alert = function (message) {
|
||||
window.pywebview._QWebChannel.objects.external.call('_pywebviewAlert', pywebview.stringify(message), 'alert');
|
||||
}
|
||||
} else if (platform === 'qtwebkit') {
|
||||
window.alert = function (message) {
|
||||
window.external.invoke(JSON.stringify(['_pywebviewAlert', message, 'alert']));
|
||||
}
|
||||
}
|
||||
|
||||
if (disableText) {
|
||||
var css = document.createElement("style");
|
||||
css.type = "text/css";
|
||||
css.innerHTML = disableTextCss;
|
||||
document.head.appendChild(css);
|
||||
}
|
||||
|
||||
function disableTouchEvents() {
|
||||
var initialX = 0;
|
||||
var initialY = 0;
|
||||
|
||||
function onMouseMove(ev) {
|
||||
var x = ev.screenX - initialX;
|
||||
var y = ev.screenY - initialY;
|
||||
window.pywebview._jsApiCallback('pywebviewMoveWindow', [x, y], 'move');
|
||||
}
|
||||
|
||||
function onMouseUp() {
|
||||
window.removeEventListener('mousemove', onMouseMove);
|
||||
window.removeEventListener('mouseup', onMouseUp);
|
||||
}
|
||||
|
||||
function onMouseDown(ev) {
|
||||
if (
|
||||
'%(drag_region_direct_target_only)s' === 'True' &&
|
||||
!ev.target.matches('%(drag_selector)s')
|
||||
) {
|
||||
return
|
||||
}
|
||||
|
||||
initialX = ev.clientX;
|
||||
initialY = ev.clientY;
|
||||
window.addEventListener('mouseup', onMouseUp);
|
||||
window.addEventListener('mousemove', onMouseMove);
|
||||
}
|
||||
|
||||
function onBodyMouseDown(event) {
|
||||
var target = event.target;
|
||||
var dragSelectorElements = document.querySelectorAll('%(drag_selector)s');
|
||||
|
||||
while (target && target !== document.body && target !== document.documentElement) {
|
||||
if (target.nodeType === 1) {
|
||||
// Check if target matches the drag selector
|
||||
for (var i = 0; i < dragSelectorElements.length; i++) {
|
||||
if (dragSelectorElements[i] === target) {
|
||||
onMouseDown(event);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// If it doesn't match, continue up the DOM tree
|
||||
target = target.parentNode;
|
||||
}
|
||||
}
|
||||
|
||||
document.body.addEventListener('mousedown', onBodyMouseDown);
|
||||
|
||||
// easy drag for edge chromium
|
||||
if ('%(easy_drag)s' === 'True') {
|
||||
window.addEventListener('mousedown', onMouseDown);
|
||||
}
|
||||
|
||||
if ('%(zoomable)s' === 'False') {
|
||||
document.body.addEventListener('touchstart', function(e) {
|
||||
if ((e.touches.length > 1) || e.targetTouches.length > 1) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
e.stopImmediatePropagation();
|
||||
}
|
||||
}, {passive: false});
|
||||
|
||||
window.addEventListener('wheel', function (e) {
|
||||
if (e.ctrlKey) {
|
||||
e.preventDefault();
|
||||
}
|
||||
}, {passive: false});
|
||||
}
|
||||
|
||||
// draggable
|
||||
if ('%(draggable)s' === 'False') {
|
||||
document.addEventListener('dragstart', function(e) {
|
||||
if (e.target.tagName === 'IMG' || e.target.tagName === 'A') {
|
||||
e.preventDefault();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
disableTouchEvents();
|
||||
})();
|
||||
Reference in New Issue
Block a user