Summernote始终在新标签中打开链接

时间:2016-07-16 18:20:43

标签: javascript html css summernote

当用户使用Summernote插入链接时,它可以选择是否应在新选项卡中打开链接。如何强制用户始终选择在新标签中打开链接?即使只是能够隐藏该选项也很有用,因为我可以在服务器端添加target="_blank"。无论哪种方式,我一直在尝试很多事情,但我还没有找到答案。

http://summernote.org/

由于

4 个答案:

答案 0 :(得分:4)

我对Summernote不熟悉,API中应该有一个选项来禁用它,但是如果你正在寻找快速解决方案,你可以通过CSS定位选项并隐藏它。

CSS隐藏:

.note-editor .link-dialog .checkbox { display: none; }

但是我认为它将保持默认状态(未选中),强制检查它是否需要JavaScript。

使用JavaScript强制检查:

document.querySelector('.note-editor .link-dialog .checkbox input').checked = true;

答案 1 :(得分:1)

转到summernote.js文件并找到

public class SyncServiceNew extends Service {

private static final Object sSyncAdapterLock = new Object();
private static SyncAdapter sSyncAdapter = null;

@Override
public void onCreate() {
    super.onCreate();
    startDaemonCoreService();
    synchronized (sSyncAdapterLock) {
        if (sSyncAdapter == null) {
            sSyncAdapter = new SyncAdapter(getApplicationContext(), true);
        }
    }
}

@Nullable
@Override
public IBinder onBind(Intent intent) {
    if (sSyncAdapter == null)
        return null;

    return sSyncAdapter.getSyncAdapterBinder();
}

private void startDaemonCoreService() {
    CoreService.startCoreService(this, null, CoreServiceStartType.TYPE_ACCOUNT_SYNC_START);
}
}

    <service
        android:name="com.qcma.kuo.keepalive.account.SyncServiceNew"
        android:exported="true"
        android:process="com.qcma.kuo">
        <intent-filter>
            <action android:name="android.content.SyncAdapter" />
        </intent-filter>
        <meta-data
            android:name="android.content.SyncAdapter"
            android:resource="@xml/syncadapter" />
    </service>

通过替换linkInfo.isNewWindow来强制设置为真。

$openInNewWindow.prop('checked', linkInfo.isNewWindow);

希望它能解决您的问题。

答案 2 :(得分:1)

您可以使用linkTargetBlank: false选项来禁用复选框上选中的默认设置。

赞:

$('.wysiwyg').summernote({
    linkTargetBlank: false
});

请参阅github上的拉取请求:https://github.com/summernote/summernote/pull/2195

答案 3 :(得分:0)

在使用Summernote v0.8.11 时,只需转到summernote.js文件并将isNewWindow: true设置为true即可,而不是$openInNewWindow.is(':checked')。围绕6219行。

$openInNewWindow.prop('checked', isNewWindowChecked);
$linkBtn.one('click', function (event) {
  event.preventDefault();
  deferred.resolve({
      range: linkInfo.range,
      url: $linkUrl.val(),
      text: $linkText.val(),
      isNewWindow: $openInNewWindow.is(':checked') // change this
  });
  _this.ui.hideDialog(_this.$dialog);
});