window.open没有按预期工作,需要一些建议

时间:2017-04-14 15:58:12

标签: javascript codeigniter

我是JavaScript的新手。 我的功能无法正常工作。 我有一些输入文本(多个,类似)。我为每个人添加了一个id。

我使用JavaScript函数获取值,然后将它们传输到另一个要处理的页面。但我的功能脚本出错了,我需要一个解决方案,请帮忙。

此脚本会保持打开一个新标签。我想要的只是打开它的窗口,当前在一个名为'main'的框架上。

这是我的功能:

function addFrame(fid){  
    var xfra= "x"+fid;  
    var nfr= document.getElementById(xfra).value;  
    var nwo= fid;  
    var link= "http://127.0.0.1/nims/index.php/jpbgr/frame/18?
    xid=18&menu=new&order="+nwo+"&frame="+nfr;  
    var Util= window.open(link);   
}  

即使我改为:

var Util= window.open(link, "main");

但仍然无法正常工作。

我使用了CodeIgniter。

谢谢。

=======
这是索引文件:

<!DOCTYPE html>
<html>
  <head>
    <title>IMS-2017</title>
  </head>
  <frameset rows="0,*" frameborder=0 noresize>
    <frame src="dummy.php" name="top" frameborder=0 noresize>
    <frame src="./../nims/index.php/jpbgr/proses/18?xid=18&jid=CR" name="main">
  </frameset>
</html>

这是body标签内的表格:

<form>
<input type="text" placeholder="Frame Number" id="x1015909">
<button onclick="addFrame('1015909');">GO</button>
</form>

我希望此功能将输入的文本发送到其他页面,但仍然在同一个窗口中。我的第一次尝试是使用window.open(),但我想我错了。

任何想法如何做到这一点?

谢谢。

1 个答案:

答案 0 :(得分:1)

首先,您应该使用encodeURIComponent作为您的值,以确保传递安全。如果您想留在同一个标​​签页,可以尝试window.location

例如,

function addFrame(fid){  
  var xfra= encodeURIComponent("x"+fid);  
  var nfr= encodeURIComponent(document.getElementById(xfra).value);  
  var nwo= encodeURIComponent(fid);  
  var link= "http://127.0.0.1/nims/index.php/jpbgr/frame/18?xid=18menu=new&order="+nwo+"&frame="+nfr;  
  var Util= window.location(link);   
}  

以上操作将停止运行当前页面,并在代码运行的选项卡中打开新页面。如果要填充iframe,则应使用iframe的contentWindow属性而不是代码所在的window。有关iframe的更多详情,请查看this page