#http #url #tinymce
#http #url #tinymce
Вопрос:
Есть ли способ добавить ‘http: //’ к URL, если его там нет, при добавлении URL со ссылкой Insert в TinyMCE?
Ответ №1:
Для этого вам нужно скопировать плагин tinymce Insert Link, переименовать его, добавить к нему необходимый код (добавление «http») и использовать его как свой собственный плагин.
РЕДАКТИРОВАТЬ: Хорошо, вот пример (с использованием 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'));
}
});
});
},
Комментарии:
1. Спасибо, Тариама. Есть ли какой-либо другой способ сделать это?
2. Вы могли бы использовать параметр setup или собственный плагин для реализации обработчика, который прослушивает указанное событие. Этот обработчик может выполнять поиск в содержимом для ссылки и проверять, установлен ли у них «http».
3. Еще раз спасибо, не могли бы вы, пожалуйста, опубликовать какой-нибудь пример кода, как это сделать? Буду признателен за вашу услугу.
4. Большое спасибо. Я действительно ценю ваши усилия по написанию кода для меня.
Ответ №2:
Я также сталкивался с этой проблемой с версией 4.x. Я обнаружил, что link
плагин поддерживает опцию, которая предлагает пользователю добавить протокол. Но, к сожалению, это не упоминается в документации, это задокументировано только в журнале изменений, поэтому я бы предположил, что это широко неизвестно.
$('textarea').tinymce({
...
link_assume_external_targets: true
...
});
Комментарии:
1. Это помогло. Спасибо.
2. Есть ли возможность пропустить это предупреждение и принудительно добавить http: // ко всем ссылкам без http / https?
3. Насколько мне известно, когда я исследовал это, нет. Хотя, возможно, что-то изменилось.
Ответ №3:
Я добился этого, предварительно заполнив значение поля ‘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: //»
Ответ №4:
в 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!
Ответ №5:
я только что увидел это, и это может помочь, версия 5:
link_assume_external_targets: [опция];
вы можете использовать опцию «https» или «http», и это не должно вызывать
https://www.tiny.cloud/docs/plugins/opensource/link/#link_assume_external_targets