如何在编辑器里添加CSS或JS代码

最近在使用Wordpress做一个网站项目,需要在后台编辑器里添加自定义的JS脚本和CSS

在编辑器里添加好后,发现在浏览器里JS脚本执行有问题并且CSS的脚本直接被WordPress保存的时候过滤掉了

经过排查发现原因是Wordpress默认的TinyMCE在从代码模式切换到可视化模式的时候对脚本时行了处理

更无耻的是CSS的脚本直接被删除了

  1. //编辑器里代码模式下的代码
  2. <script type="text/javascript">
  3. //my code....
  4. </script>
  5. //编辑器里可视化模式下的代码
  6. <script type="text/javascript">
  7. // <![CDATA[
  8. //my code....
  9. // ]]>
  10. </script>

wiki CDATA上的说明

CDATA sections in XHTML documents are liable to be parsed differently by web browsers if they render the document as HTML, since HTML parsers do not recognise the CDATA start and end markers, nor do they recognise HTML entity references such as &lt; within <script> tags. This can cause rendering problems in web browsers and can lead to cross-site scripting vulnerabilities if used to display data from untrusted sources, since the two kinds of parser will disagree on where the CDATA section ends.

Since it is useful to be able to use less-than signs (<) and ampersands (&) in web page scripts, and to a lesser extent styles, without having to remember to escape them, it is common to use CDATA markers around the text of inline <script> and <style> elements in XHTML documents. But so that the document can also be parsed by HTML parsers, which do not recognise the CDATA markers, the CDATA markers are usually commented-out, as in this JavaScript example:

所以正确的写法应该是这样子的

  1. //JavaScript example:
  2. <script type="text/javascript">
  3. //<![CDATA[
  4. //mycode
  5. document.write("<");
  6. //]]>
  7. </script>
  8. //CSS example:
  9. <style type="text/css">
  10. /*<![CDATA[*/
  11. //my code
  12. body { background-image: url("marble.png?width=300&height=300") }
  13. /*]]>*/
  14. </style>

参考:

javascript <![CDATA[的web标准使用方法

有些网站源码里 script 里写的 <![CDATA[...]]> 是干嘛用的?

wiki CDATA

What is CDATA in HTML?

来自为知笔记(Wiz)

时间: 2024-10-27 16:44:55

如何在编辑器里添加CSS或JS代码的相关文章

asp.net后台添加css、 js 、 meta、ascx

1 //标题 2 Title = "标题"; 3 //关键词 4 HtmlMeta meta1 = new HtmlMeta(); 5 meta1.Name = "keywords"; 6 meta1.Content = "关键词"; 7 this.Page.Header.Controls.Add(meta1); 8 //描述 9 HtmlMeta meta2 = new HtmlMeta(); 10 meta2.Name = "des

Asp.net 后台添加CSS、JS、Meta标签

Asp.net 后台添加CSS.JS.Meta标签的写法,我这里写成函数方便以后使用.如果函数放在页面类中, Page参数也可以不要. 首先导入命名空间 using System.Web.UI.HtmlControls; /// <summary> /// 添加JS脚本链接 /// </summary> /// <param name="page">页面</param> /// <param name="url"

前端CSS和JS代码风格规范

1:不要轻易改动全站级CSS和通用CSS库.改动后,要经过全面测试. 2:css的id,class 名称 语义化,   以 - 相连,   命名少用缩写(除一些所有人一看便知的缩写); 3: Javascript命名规则 3.1:私有变量名用下划线开头; eg: _this = $(this); 3.2:变量名--驼峰命名法; eg: regEmail; 3.3:格式化对象参数;   eg: $.ajax({ type : 'post', url : '/auth/sendCode', data

ruby应用里添加zepto.min.js但是无法使用里面的方法

今天尝试做移动端自适应的页码,添加了zepto.min.js,写完对应的代码后重启服务,这时候发现zepto.min.js方法无法识别, 不能直接在application.js里调用. 原因是ruby on rails 的服务默认添加了jquery.js,占用了$符号,在application里使用$调用,默认就调用的jquery里的方法, 所以如果想在application.js里使用$符号以及使用zepto的方法,需要将对应的js代码外面加一层 (function($){ //这里写一些ze

Atom编辑器折腾记_(13)JS代码智能提示补全(插件:atom-ternjs)

题外话 官方正式版虽然内置了.autocomplete-plus;最为明显的一个功能就是记忆你已经输入过的名称进行匹配; 但是针对于某些语言来说,还是有些不足的-.其中JS的补全上就明显不足了-所以需要借助插件来拓展 atom-ternjs 官方描述: Javascript code intelligence for atom with tern.js. Uses suggestion provider by autocomplete-plus. 简言之,就是JS代码智能提示,个人也希望以后可以

用python给html里的css及js文件链接自动添加版本号

传统的给文件链接添加版本号的方法是使用gulp-rev,这里提出的解决方案是使用python来替代gulp-rev. import os import re import uuid import sys def file_extension(path): return os.path.splitext(path)[1] basePath = sys.argv[1] if len(sys.argv)==1: sys.exit() html_list = [] def find_html(path)

5、UmbracoNewsSite:添加css和js文件

我们接着上一篇的内容,这一篇我们引入stylesheets样式,并且尝试添加其他页面的内容. 打开visual studio,在项目根目录下新建js和css文件夹,分别把bootstrap的文件复制进去.(如果已经有就不用新建了) 然后打开Umbraco后台管理页面,刷新之后就可以看到Stylesheets节点下面出现了刚刚复制的文件.这是因为Umbraco规定了Stylesheet节点默认去读取根目录下名为css的文件夹中的文件:看到这你可能会下意识的认为那Scripts节点下肯定会出现刚才复

require.js添加css文件实现代码:css.min.js

define( function () { if (typeof window == "undefined")return { load: function (n, r, load) { load() } }; var head = document.getElementsByTagName("head")[0]; var engine = window.navigator.userAgent.match(/Trident\/([^ ;]*)|AppleWebKit

div永远居中,css和js代码

//css方式<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>CSS Position 定位实现 DIV 在窗口居中</title> <style type="text/css"> .dialog { position: fixed; _position: absolute; z-index: 1; top: 5