TinyMCE: как добавить «http://» к URL-адресу, если его там нет

Есть ли способ добавить «http://» к URL-адресу, если его нет, при добавлении URL-адреса с помощью «Вставить ссылку» в TinyMCE?


person Saim    schedule 19.05.2011    source источник


Ответы (5)


Для этого вам нужно будет скопировать плагин tinymce Insert Link, переименовать его, добавить к нему необходимый код (добавление «http») и использовать его как свой собственный плагин.

EDIT: Хорошо, вот пример (с использованием jQuery):

// You might need to change the event and/or tha handling 
// but this should give you a guess at what needs to be done
setup : function(ed)
{
       ed.onClick.add(function(ed, evt)
       {
           $(ed.getBody()).find('a').each(function(index, element){
               if (!$(this).attr('href').search('http')){
                    $(this).attr('href', 'http://' + $(this).attr('href'));
               }
           });
       });
},
person Thariama    schedule 20.05.2011
comment
Спасибо, Тариама. Есть ли другой способ сделать это? - person Saim; 20.05.2011
comment
Вы можете использовать параметр настройки или собственный плагин для реализации обработчика, который прослушивает указанное событие. Этот обработчик может искать в содержимом ссылку и проверять, установлен ли у них http. - person Thariama; 23.05.2011
comment
Еще раз спасибо, не могли бы вы опубликовать пример кода, как это сделать? Я буду признателен за вашу милость. - person Saim; 23.05.2011
comment
Большое спасибо. Я очень ценю ваши усилия по написанию кода для меня. - person Saim; 23.05.2011

Я столкнулся с этой проблемой и с версией 4.x. Я обнаружил, что плагин link поддерживает параметр, предлагающий пользователю добавить протокол. Но, к сожалению, это не упоминается в документации, это задокументировано только в журнале изменений, поэтому я полагаю, что это широко неизвестно.

$('textarea').tinymce({
    ...
    link_assume_external_targets: true
    ...
});

введите здесь описание изображения

person EternalHour    schedule 13.04.2015
comment
Это помогло. Спасибо. - person Henry A.; 28.09.2016
comment
Есть ли возможность пропустить это предупреждение и принудительно добавить http:// ко всем ссылкам без http/https? - person Arun; 24.10.2016
comment
Насколько я знаю, когда я исследовал это, нет. Хотя, возможно, все изменилось. - person EternalHour; 25.10.2016

Я добился этого, предварительно заполнив значение поля «http://» в файле tinymce insertLink.aspx.

<ui:PropertyPanel runat="server" Text="Url">
   <input type="hidden" id="localUrl" name="localUrl" onchange="" />
   <input id="href" name="href" type="text" style="width: 220px;" value="http://" onchange="document.getElementById('localUrl').value = ''; 
selectByValue(this.form,'linklisthref',this.value);" />
</ui:PropertyPanel>

значение="http://"

person Adam    schedule 12.03.2012

в link.js найдите «if (!f.href.value)»

добавить пункт "else"

    else {
        var href = f.href.value;
        if (href.indexOf('http') == -1) {
            href = 'http://' + href;
            f.href.value = href;
        }
    }

** помните, что вы сделали это на случай, если вы обновите свой компонент tinymce!

person foxontherock    schedule 22.01.2013

я только что видел это, и это может помочь, версия 5:

link_assume_external_targets: [опция];

вы можете использовать вариант https или http, и он не должен запрашивать

https://www.tiny.cloud/docs/plugins/opensource/link/#link_assume_external_targets

person Augustus    schedule 25.03.2021