- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用简单的所见即所得编辑器。 JSLint 表示它有“Bad escapeing of EOL”。由于我是 javascript 的新手,我很难弄清楚它的含义,因为我正在使用在线找到的代码。谁能告诉我我应该做什么而不是用斜杠结束该行?
这是有问题的代码:http://jsfiddle.net/spadez/KSA5e/9/
/*
* WYSIWYG EDITOR BASED ON JQUERY RTE
*/
// define the rte light plugin
(function ($) {
if (typeof $.fn.rte === "undefined") {
var defaults = {
content_css_url: "rte.css",
dot_net_button_class: null,
max_height: 350
};
$.fn.rte = function (options) {
$.fn.rte.html = function (iframe) {
return iframe.contentWindow.document.getElementsByTagName("body")[0].innerHTML;
};
// build main options before element iteration
var opts = $.extend(defaults, options);
// iterate and construct the RTEs
return this.each(function () {
var textarea = $(this);
var iframe;
var element_id = textarea.attr("id");
// enable design mode
function enableDesignMode() {
var content = textarea.val();
// Mozilla needs this to display caret
if ($.trim(content) === '') {
content = '<br />';
}
// already created? show/hide
if (iframe) {
console.log("already created");
textarea.hide();
$(iframe).contents().find("body").html(content);
$(iframe).show();
$("#toolbar-" + element_id).remove();
textarea.before(toolbar());
return true;
}
// for compatibility reasons, need to be created this way
iframe = document.createElement("iframe");
iframe.frameBorder = 0;
iframe.frameMargin = 0;
iframe.framePadding = 0;
iframe.height = 200;
if (textarea.attr('class')) iframe.className = textarea.attr('class');
if (textarea.attr('id')) iframe.id = element_id;
if (textarea.attr('name')) iframe.title = textarea.attr('name');
textarea.after(iframe);
var css = "";
if (opts.content_css_url) {
css = "<link type='text/css' rel='stylesheet' href='" + opts.content_css_url + "' />";
}
var doc = "<html><head>" + css + "</head><body class='frameBody'>" + content + "</body></html>";
tryEnableDesignMode(doc, function () {
$("#toolbar-" + element_id).remove();
textarea.before(toolbar());
// hide textarea
textarea.hide();
});
}
function tryEnableDesignMode(doc, callback) {
if (!iframe) {
return false;
}
try {
iframe.contentWindow.document.open();
iframe.contentWindow.document.write(doc);
iframe.contentWindow.document.close();
} catch (error) {
console.log(error);
}
if (document.contentEditable) {
iframe.contentWindow.document.designMode = "On";
callback();
return true;
} else if (document.designMode !== null) {
try {
iframe.contentWindow.document.designMode = "on";
callback();
return true;
} catch (error) {
console.log(error);
}
}
setTimeout(function () {
tryEnableDesignMode(doc, callback);
}, 500);
return false;
}
function disableDesignMode(submit) {
var content = $(iframe).contents().find("body").html();
if ($(iframe).is(":visible")) {
textarea.val(content);
}
if (submit !== true) {
textarea.show();
$(iframe).hide();
}
}
// create toolbar and bind events to it's elements
function toolbar() {
var tb = $("<div class='rte-toolbar' id='toolbar-" + element_id + "'><div>\
<p>\
<a href='#' class='bold'>Bold</a>\
<a href='#' class='italic'>Italic</a>\
<a href='#' class='unorderedlist'>List</a>\
</p></div></div>");
$('.bold', tb).click(function () {
formatText('bold');
return false;
});
$('.italic', tb).click(function () {
formatText('italic');
return false;
});
$('.unorderedlist', tb).click(function () {
formatText('insertunorderedlist');
return false;
});
// .NET compatability
if (opts.dot_net_button_class) {
var dot_net_button = $(iframe).parents('form').find(opts.dot_net_button_class);
dot_net_button.click(function () {
disableDesignMode(true);
});
// Regular forms
} else {
$(iframe).parents('form').submit(function () {
disableDesignMode(true);
});
}
var iframeDoc = $(iframe.contentWindow.document);
var select = $('select', tb)[0];
iframeDoc.mouseup(function () {
setSelectedType(getSelectionElement(), select);
return true;
});
iframeDoc.keyup(function () {
setSelectedType(getSelectionElement(), select);
var body = $('body', iframeDoc);
if (body.scrollTop() > 0) {
var iframe_height = parseInt(iframe.style['height']);
if (isNaN(iframe_height)) iframe_height = 0;
var h = Math.min(opts.max_height, iframe_height + body.scrollTop()) + 'px';
iframe.style['height'] = h;
}
return true;
});
return tb;
}
function formatText(command, option) {
iframe.contentWindow.focus();
try {
iframe.contentWindow.document.execCommand(command, false, option);
} catch (e) {
//console.log(e)
}
iframe.contentWindow.focus();
}
function setSelectedType(node, select) {
while (node.parentNode) {
var nName = node.nodeName.toLowerCase();
for (var i = 0; i < select.options.length; i++) {
if (nName == select.options[i].value) {
select.selectedIndex = i;
return true;
}
}
node = node.parentNode;
}
select.selectedIndex = 0;
return true;
}
function getSelectionElement() {
if (iframe.contentWindow.document.selection) {
// IE selections
selection = iframe.contentWindow.document.selection;
range = selection.createRange();
try {
node = range.parentElement();
} catch (e) {
return false;
}
} else {
// Mozilla selections
try {
selection = iframe.contentWindow.getSelection();
range = selection.getRangeAt(0);
} catch (e) {
return false;
}
node = range.commonAncestorContainer;
}
return node;
}
// enable design mode now
enableDesignMode();
}); //return this.each
}; // rte
} // if
$(".rte-zone").rte({});
})(jQuery);
编辑:对于奖励分数,还有两个我无法消除的错误 -
最佳答案
JS 直到 ES5 才支持使用 \
进行行尾转义 - 您可以使用带有 +
运算符的多个字符串,即
"string 1" +
"string 2" +
"string 3"
回复:您的其他问题:
使用 parseInt(n, 10)
强制基数(又名基数)为 10,即十进制
使用iframe.style.height
而不是iframe.style['height']
关于javascript - 错误的 EOL 转义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17832052/
这与这个问题非常相似: What is the differrence between `* text=auto` and `* text eol=lf` in .gitattributes? 但我特
Notepad++(甚至使用其他工具)是否有任何方法可以一次性在多个文件上自动更改行结尾? 即将 Windows EOL (CRLF) 和 UNIX EOL (LF) 文件的混合转换为所有 Windo
我正在尝试根据设置更改字符串的行结尾。基本上我有字符串,大多以 LF 结尾,很少有其他东西,但它会发生,并且我希望能够将它们更改为 CRLF 或 CR(如果被要求),或者确保它们是纯粹的 LF(如果被
当我尝试在我的服务器上上传一个 php 文件时,我收到一条消息:"Parse error: ..." 我知道这是什么意思,但问题是别的。 如果我在本地服务器上编辑文件(我的计算机上安装了 XAMPP)
我正在尝试创建一个输出文件以在类项目中使用,但在扫描此行上的字符串文字时它不断给出 EOL: outfile = open(r'C:\Users\kay\Documents\CCA Classes\C
这是我的代码并收到以下错误消息:第 8 行 sepFile=readFile.read().split('\')SyntaxError:扫描字符串文字时 EOL你可以帮帮我吗?谢谢。 import m
我有一个包含\n EOL 字符的制表符分隔文件,看起来像这样: User Name\tCode\tTrack\tColor\tNote\n\nUser Name2\tCode2\tTrack2\tCo
所以我正在尝试使用这段代码 我收到错误 SyntaxError: EOL while scanning string literal 代码: def clean_tweet(self, tweet):
在路径= bla bla行上,它在扫描字符串文字时显示EOL,即使它是用“”关闭的,我在我的代码中经常发生这种情况,这真的很烦人,因为我永远无法修复它。 import os import shutil
我试图在输入字符串中找到每个“a -> b, c, d”模式。我使用的模式如下: "^[ \t]*(\\w+)[ \t]*->[ \t]*(\\w+)((?:,[ \t]*\\w+)*)$" 这个模式
我正在尝试使用简单的所见即所得编辑器。 JSLint 表示它有“Bad escapeing of EOL”。由于我是 javascript 的新手,我很难弄清楚它的含义,因为我正在使用在线找到的代码。
我正在为 Android 编写一个网络应用程序。根据协议(protocol)规范,每行的结尾必须是 CR/LF 组合。虽然我用自己的字符串生成它没有问题,但有时我必须处理用户输入并转换行尾。 我在内部
这个问题应该由 Oracle 支持人员在技术上回答,但他们的响应时间很慢。因此,我想问一下,是否有版本指南提到哪些版本的 Oracle Weblogic 已停产及其日期? http://www.ora
BufferedReader.readLine() 会自动删除 EOL 字符,我不能简单地执行 readLine(),然后在其末尾添加“\r”。我试过了 InputStream myFile = ne
在扫描字符串文字时,它不断出现EOL,但这是什么意思? 这是它不断调用错误的部分: if health2 <= 3: print ("With all the strength you have
我有这个方法: def get_chunksize(path): """ Breaks a file into chunks and yields the chunk sizes.
这个问题在这里已经有了答案: Remove the newline character in a list read from a file [duplicate] (5 个答案) 关闭 8 年前。
基本上我正在用 C 语言编写一个基于文本的角色扮演游戏,我想创建一个 map 系统。基本上,我遇到问题的功能是从如下所示的文件中读取“文本映射”: ----------\n |c x [\n
我正在尝试从给定的 .txt 或 .csv 平面文件中识别 EOL 字符是什么。根据平面文件中第一行数据的 EOL 字符是什么,我想相应地处理该文件中的数据(我正在使用批量加载在 SQL Server
有人可以帮我修改这些脚本以忽略错误并继续运行吗?我只需要弄清楚如何使脚本跳过这些错误并完成其余的行。 这是完整的 Python 脚本: # Import system modules import s
我是一名优秀的程序员,十分优秀!