function wrapLineNumberDiv(place) {
return function(node) {
- var container = document.createElement("DIV"),
- nums = document.createElement("DIV"),
- scroller = document.createElement("DIV");
+ var container = document.createElement("div"),
+ nums = document.createElement("div"),
+ scroller = document.createElement("div");
container.style.position = "relative";
nums.style.position = "absolute";
nums.style.height = "100%";
var win = frame.contentWindow, doc = win.document,
nums = frame.nextSibling, scroller = nums.firstChild;
- var nextNum = 1, barWidth = null;
- function sizeBar() {
- if (!frame.offsetWidth || !win.Editor) {
- for (var cur = frame; cur.parentNode; cur = cur.parentNode) {
- if (cur != document) {
- clearInterval(sizeInterval);
- return;
- }
- }
- }
-
- if (nums.offsetWidth != barWidth) {
- barWidth = nums.offsetWidth;
- nums.style.left = "-" + (frame.parentNode.style.marginLeft = barWidth + "px");
- }
- }
+ var nextNum = 1;
+
function update() {
var diff = 20 + Math.max(doc.body.offsetHeight, frame.offsetHeight) - scroller.offsetHeight;
for (var n = Math.ceil(diff / 10); n > 0; n--) {
- var div = document.createElement("DIV");
+ var div = document.createElement("div");
div.appendChild(document.createTextNode(nextNum++));
scroller.appendChild(div);
}
nums.scrollTop = doc.body.scrollTop || doc.documentElement.scrollTop || 0;
}
- sizeBar();
+
update();
win.addEventHandler(win, "scroll", update);
- win.addEventHandler(win, "resize", update);
- var sizeInterval = setInterval(sizeBar, 500);
+ win.addEventHandler(win, "resize", update);
}
function CodeMirror(place, options) {
this.options = options = options || {};
setDefaults(options, CodeMirrorConfig);
- var frame = this.frame = document.createElement("IFRAME");
+ var frame = this.frame = document.createElement("iframe");
if (options.iframeClass) frame.className = options.iframeClass;
frame.frameBorder = 0;
frame.src = "javascript:false;";