web-dev-qa-db-fra.com

Comment puis-je empêcher CKEdititor 4 de supprimer les étiquettes asynchrones asynchrones Google Adsense?

Pour une raison quelconque, CKEDITOR 4 élimine les balises asynchrones ADSense Google de mon format de texte HTML complet.

Qu'est-ce qui commence comme cela (des situés substitués pour les IDS):

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
</script>
<!-- Top Banner -->
<ins class="adsbygoogle"
    style="display:inline-block;width:728px;height:90px"
    data-ad-client="ca-pub-XXXXX"
    data-ad-slot="XXXXX"></ins>
<script>
    (adsbygoogle = window.adsbygoogle || []).Push({});
</script>

Finit comme ça:

<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js">
</script>
<!-- Top Banner -->
<script>
    (adsbygoogle = window.adsbygoogle || []).Push({});
</script>

Encore une fois, ceci est dans le format texte HTML complet et je suis capable d'obtenir le ins Tag à travers sans attributs, mais pas avec des attributs, même si d'autres Les balises n'ont aucun problème à obtenir leurs attributs à économiser.

Pour ce que ça vaut la peine, j'ai le suivant sur le profil CKEditor:

config.allowedContent = true;

MISE À JOUR

CKEditor n'apprimente que le Ins Tag (et attributs) lorsqu'il s'agit d'une étiquette vide, comme indiqué par Adsense. Si j'ajoute quelque chose - un espace non-casseur, même - CKEditor préserve le INS Tag et attributs.

Par Tenken's Suggestion, j'ai ajouté la ligne suivante à ma configuration, mais cela n'a pas aidé.

config.protectedSource.Push( /<ins class=\"adsbygoogle\" style=\".*\" data-ad-client=\".*\" data-ad-slot=\".*\"\><\/ins\>/g );
2
DeepFriedBits

Avez-vous lu ce blogpostost (pas par moi) Configuration de Drupal WYSYWG personnalisé CKEDITOR par Philip Norton.

Ton <script> Tags ne sont pas supprimés, mais le génial <ins> tag est. À partir de ce blog, vous devriez pouvoir ajouter un protectedSource aux règles de l'AFC afin que ces éléments ne soient pas dépouillés. Ceci n'est pas testé mais dérivé du blogpostost:

// Allow Google Adsense <ins> tags, I'm being more specific
// than allowing any raw <ins> tag here. This may be too specific, but
// play with it.
config.protectedSource.Push( /<ins class=\"adsbygoogle\"\>.*?<\/ins\>/g );

Pour que cette configuration fonctionne, vous devrez peut-être installer le mode [~ # ~ # ~] WYSIWYG [~ # ~] Module (ou ajouter à votre propre profil JavaScript CKEditor directement).

2
tenken