无法获取未定义或空引用的属性“createRange”
Unable to get property 'createRange' of undefined or null reference
以下代码在我升级到Windows 8.1/Internet Explorer 11之前一直运行良好,现在抛出错误:"无法获取未定义或空引用的属性'createRange'"
var SelectedData = window.external.menuArguments.document.selection.createRange().text;
是否有解决此问题/解决方法?
*下面更新了问题,其中包含仍然无法正常工作的较新代码....
<html><head><title>-</title><script type="text/JScript">
function Launch()
{
var TheSelection = document.getSelection();
if(TheSelection != null)
{
.... do a bunch of stuff
}
window.close();
}
</script></head><body onload="Launch();" </body></html>
我也试过窗口.获取选择;window.getselection();window.getSelection().tostring();
这些似乎都不起作用???
document.selection
的文档在顶部说:
不再支持选择。从 Internet Explorer 11 开始,使用 getSelection。有关信息,请参阅兼容性更改。
将document.selection.createRange().text
更改为document.getSelection()
。
问题正是我所预测的。您正在对空引用或未定义的引用调用createRange()
。具体来说,document.selection
是未定义的。错误消息准确地说明了问题所在。
这实际上不是很多上下文,但一般来说,您的错误消息意味着您未能执行此操作:
var SelectedData;
var selection = window.external.menuArguments.document.selection;
if(selection != null)
{
SelectedData = selection.createRange().text;
}
当您尝试获取选择时,未进行任何选择,因此选择为 null。 当对象为 null 时,您无法查询它,因为包含所需信息的结构不存在。
对于此调整,您可以找到:
b=document.selection.getSelection()
或类似的东西然后你可以使用以下代码来碰运气:
b=typeof document.selection!=="undefined"?document.selection.getSelection():null
相关文章:
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 全局变量和全局对象的属性之间有什么区别吗
- 如果使用 lodash 将属性存在于另一个对象中,则向对象添加属性
- 如何在Bootstrap Modal中为动态点击生成的变量设置jade属性
- 序列化数据属性中对象的最可靠方法
- 分析高度属性时出现意外值{{specs.height}}.index.html
- TypeError:无法读取属性'推'未定义的JavaScript
- 同样,同样的错误'ahorcado.js:26未捕获类型错误:无法读取属性'beginPath'
- AngularJS-使用'true'属性
- 可以't使用JavaScript获取width属性
- 未捕获的TypeError无法读取未定义的属性socialsharing
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何更改reactjs中外部/独立组件的状态或属性
- 如何在选项卡上定义属性'的主窗口对象
- 锚点元素的href属性自动更改
- jQuery最近父级的数据属性选择器
- 无法获取未定义或空引用的属性“createRange”