Skip to content

Instantly share code, notes, and snippets.

@ambar
Created August 21, 2012 13:51
Show Gist options
  • Save ambar/3415641 to your computer and use it in GitHub Desktop.
Save ambar/3415641 to your computer and use it in GitHub Desktop.
funny place caret hack in IE
// I 替换
var span = goog.dom.createDom('span',{ innerText: element.nodeValue })
element.parentNode.replaceChild(span, element)
// II 测量
var clientRect = getElementClientRect(span)
// II 还原
span.parentNode.replaceChild(element, span)
var pad = goog.userAgent.VERSION === '8.0' ? 2 : 0
var range = document.selection.createRange()
range.moveToPoint(clientRect.left + clientRect.width + pad, clientRect.top)
range.select()
function getElementClientRect(element) {
var rect = element.getBoundingClientRect()
if (!rect.width) {
// for ie7~8
goog.object.extend(
rect = goog.object.clone(rect),
goog.style.getBorderBoxSize(element)
)
}
return rect
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment