我正在尝试使用两种Javascript方法访问全局变量。第一个应该写入变量,第二个应该读取它。
我有以下代码:
var selectedObj;
function first(){
selectedObj = window.getSelection();
alert(selectedObj);
}
function second(){
alert(selectedObj);
}
因此,用户在可疑文本框中选择一些文本。当函数first()运行时,它实际上显示了所选的内容。所以我知道它的值是进入全局变量selectedObj。
但在运行函数second()之前,所选文本将被取消选中。但是,没有任何事情明确设置selectedObj的值。因此,我希望它仍然保留用户先前选择的值。
但事实并非如此。当函数second()运行时,警报为空。
如果用户 取消选择文本,则警告不会为空,因此我知道全局变量可以工作。但即使用户取消选择文本,我也需要保留其值。
我怎样才能实现这一目标?
答案 0 :(得分:2)
答案 1 :(得分:1)
来自文档(我热爱的文档):Window.getSelection()
返回一个Selection对象,表示用户选择的文本范围或插入符的当前位置。
你真的回答了自己的问题:
如果用户未取消选择文字
,则警告不会为空
您要将window.getSelection()
的结果分配给您的全球。
selectedObj = window.getSelection();
当结果为空时,您的全局为空。就像@larz在他的评论中所说,最有可能的是如何/何时调用函数first
。
答案 2 :(得分:0)
如前所述,在second()运行之前,文本将被取消选中,从而导致selectedObj设置为空值。
如果window.getSelection()!==“”
,你应该设置selectedObj的值