Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果文本是输入标记/文本框,则上下文菜单JavaScript无法获取所选文本_Javascript_Internet Explorer_Firefox Addon_Contextmenu_Clipboard - Fatal编程技术网

如果文本是输入标记/文本框,则上下文菜单JavaScript无法获取所选文本

如果文本是输入标记/文本框,则上下文菜单JavaScript无法获取所选文本,javascript,internet-explorer,firefox-addon,contextmenu,clipboard,Javascript,Internet Explorer,Firefox Addon,Contextmenu,Clipboard,我有一个非常大的问题,从网页中获取选定的文本,然后使用上下文菜单进行处理。。。当我为Chrome、Firefox和IE11解决问题时,我发现当所选文本位于输入框中时,我无法在Firefox和internetexplorer中获取所选文本 我已经找了好几天的时间来解决这个问题,最后我成功了 这是Internet Explorer的原始脚本 var parentwin=external.menuArguments var selectedText=getSel(); 函数getSel(){ var

我有一个非常大的问题,从网页中获取选定的文本,然后使用上下文菜单进行处理。。。当我为
Chrome
Firefox
IE11
解决问题时,我发现当所选文本位于输入框中时,我无法在
Firefox
internetexplorer
中获取所选文本

我已经找了好几天的时间来解决这个问题,最后我成功了

这是Internet Explorer的原始脚本

var parentwin=external.menuArguments
var selectedText=getSel();
函数getSel(){
var w=window,d=parentwin.document,gS='getSelection';
返回(“”+(w[gS]?w[gS]():d[gS]?d[gS]():d.selection.createRange().text))。替换(/(^\s+\s+$)/g.);

}
用于
Internet Explorer
IE11

var parentwin=external.menuArguments
var selectedText=getSel();
函数getSel(){
var w=parentwin.window,d=parentwin.document,gS='getSelection';
var选择文本;
var rv=(''+(w[gS]?w[gS]():d[gS]?d[gS]():d.selection.createRange().text))。替换(/(^\s+\s+$)/g');
parentwin.console.log(“第一次尝试时选择的文本是:“+rv”);
如果(rv==“”){
var allinput=parentwin.document.getElementsByTagName(“输入”);//我得到一个包含所有输入标记的数组
var指数;
var newsel;
var found=“false”;
对于(索引=0;索引0){
rv=纽塞尔;
found=“true”;
allinput[index].selectionEnd=allinput[index].selectionStart;
newsel=“”;
}
}
}
捕获(错误){}
parentwin.console.log(“输入字段”+index+“/”+allinput.length+”字段名:“+allinput[index].getAttribute(“名称”)+”选择:“+newsel”);
如果(发现=“真”){
指数=allinput.length;
}
}
parentwin.console.log(“found=:”+found);
}
返回rv;

}
多么棒的解决方案!打印得很好!总是给那些找出问题并回来分享答案的人一些道具!