|
|
| 第172行: |
第172行: |
| } | | } |
| //链接提示 | | //链接提示 |
| function linkConfirm() {
| |
| mw.loader.using('mediawiki.Uri').then(function () {
| |
| if ($('body').css('position') === 'static') $('body').css('position', 'relative');
| |
| var prompt = $('<div/>').attr('class', 'linkConfirmprompt');
| |
| prompt.css('max-width', $('#mw-content-text').width() - 4);
| |
| var textnode = $('<div/>').attr('class', 'linkConfirmpromptTextnode');
| |
| var text = $('<span/>');
| |
| textnode.append(text);
| |
| var check = window.CSS && CSS.supports && CSS.supports('-webkit-line-clamp', '2') ? (function () {
| |
| text.css({
| |
| display: '-webkit-box',
| |
| '-webkit-line-clamp': '2',
| |
| '-webkit-box-orient': 'vertical',
| |
| 'word-break': 'break-all',
| |
| 'text-overflow': 'ellipsis',
| |
| overflow: 'hidden',
| |
| });
| |
| return $.noop;
| |
| })() : function (text) {
| |
| if (text.height() > 44.8) {
| |
| text.text(text.text() + '……');
| |
| while (text.height() > 44.8) {
| |
| text.text(text.text().slice(0, -3) + '……');
| |
| }
| |
| }
| |
| };
| |
| prompt.append('您点击了一个链接,地址为:')
| |
| .append(textnode)
| |
| .append($('<div/>').attr('class', 'linkConfirmpromptAlert').append('此网页不属于本网站,不保证其安全性').hide());
| |
| prompt.append($('<a/>').text('继续访问').on('click', function () {
| |
| window.open(prompt.data('href'), '_blank');
| |
| }))
| |
| .append($('<a/>').text('取消'))
| |
| .on('click', function (e) {
| |
| if (!$(e.target).is('a')) return false;
| |
| prompt.fadeOut(137);
| |
| });
| |
| prompt.appendTo('body');
| |
| $('#mw-content-text').on('click', function (e) {
| |
| var self = $(e.target);
| |
| if (!self.is("a")) return;
| |
| if (!e.target.href || /^javascript:/.test(e.target.href) || $(e.target).is('.image')) return true;
| |
| if (!e.target.dataset.linkid) e.target.dataset.linkid = (Math.random() + '').replace(/\D/g, '');
| |
| if (prompt.is(':visible') && prompt.data('linkid') === e.target.dataset.linkid) return false;
| |
| $('.linkConfirmprompt a:last').click();
| |
| var uri = new mw.Uri(e.target.href);
| |
| if (/\.hmoegirl\.com$/.test(uri.host)) {
| |
| if (!self.closest('.heimu')[0]) return true;
| |
| text.text(decodeURI(self.attr('href')));
| |
| $('.linkConfirmpromptAlert').hide();
| |
| } else {
| |
| text.text(uri);
| |
| $('.linkConfirmpromptAlert').show();
| |
| }
| |
| var promptTop = 0,
| |
| promptLeft = 0;
| |
| var offsetParent = self;
| |
| do {
| |
| promptTop += offsetParent.offset().top;
| |
| promptLeft += offsetParent.offset().left;
| |
| offsetParent = offsetParent.offsetParent();
| |
| } while (!offsetParent.is("html, body"));
| |
| promptTop += self.outerHeight() + 3;
| |
| promptLeft += self.outerWidth() / 2 - prompt.outerWidth() / 2;
| |
| if (promptTop + prompt.outerHeight() > $(document).height() - 3) promptTop = $(document).height() - prompt.outerHeight() - 3;
| |
| if (promptLeft + prompt.outerWidth() > $(window).width() - 3) promptLeft = $(window).width() - prompt.outerWidth() - 3;
| |
| if (promptLeft < 0) promptLeft = 3;
| |
| prompt.css({
| |
| top: promptTop + 'px',
| |
| left: promptLeft + 'px',
| |
| });
| |
| window.setTimeout(check, 0, text);
| |
| prompt.data({
| |
| href: uri,
| |
| linkid: self[0].dataset.linkid,
| |
| });
| |
| prompt.fadeIn(137);
| |
| return false;
| |
| });
| |
| });
| |
| }
| |
|
| |
| function antiAbuseListener(textarea, event) { | | function antiAbuseListener(textarea, event) { |
| var filters = [ | | var filters = [ |