请问 B/S模式下,用javascript执行代理,如何实现不弹出窗口,让代理执行????
请问 B/S模式下,用javascript执行代理,是用window.open(),这样会弹出窗口,如果用脚本执行代理 ,不弹出窗口啊 谢谢 --------------------编程问答-------------------- ajax,可以实现你的要求,在你的请求发出后,根据你预先设置好的url,执行代理,并根据代理返回相应的值,而前台可以在代理执行完同时执行预置的函数,这样或许可以达到你的要求.另外一个方法就是模态窗口,但是仍然会有一个窗口一闪而过. --------------------编程问答-------------------- agent?openagent --------------------编程问答-------------------- ajax 程序。但是需要代理返回xml格式数据。 --------------------编程问答-------------------- 建一个按钮,用公式执行代理,然后用JS取得objbut,并生成点击事件如var objbut = document.getElementById("AgentButton");
objbut.click();
在按钮的Click事件中写Toolsrunmacro --------------------编程问答--------------------
标准函数:
function ajax_getAgentReturn(vUrl){
var xmlhttp_ser = new ActiveXObject( "Microsoft.XMLHTTP");
xmlhttp_ser.Open("POST",vUrl,false);
xmlhttp_ser.Send();
var vDiv=document.createElement("DIV");
vDiv.innerHTML=xmlhttp_ser.responseText;
return vDiv.innerText;
}
代理使用Print |text| 输出
即可 --------------------编程问答-------------------- OpenAgent命令
比如:
var xml = new ActiveXObject("Microsoft.XMLDOM");
xml.async = false;
path="数据库名.nsf/"+代理名称+"?OpenAgent"
//OpengAengt后面和可以接一些参数 比如 :"xxx?OpenAgent&docid=d2343434dfadfd34re"
xml.load(path)
var root = xml.getElementsByTagName('这里为lotusscript或者java代码返回的xml元素名')[0];
if (root!=null){
for (var iNode = 0; iNode < root.childNodes.length; iNode++) {
var node = root.childNodes.item(iNode);
if (node!=null){
if (node.getAttribute("value")!=""){
alert(node.getAttribute("value"))
}
}
}
} --------------------编程问答-------------------- 最简单的办法是在iframe里运行. --------------------编程问答-------------------- 鄙视不结帖的,~~ --------------------编程问答-------------------- 我认识lotus notes高手?可以帮你联系一下 ,melissa_zhaoyan@hotmail.com --------------------编程问答-------------------- 我也建议用iframe不过在调用的表单中最好加上SaveOptions=0。代理就不用了 --------------------编程问答-------------------- lbrein 正解.使用Microsoft.XMLHTTP来发送 --------------------编程问答-------------------- AJAX --------------------编程问答-------------------- 里面加个alert就可以执行,不加的话有时会执行有时不执行,具体原因不大清楚,不过俺做过 --------------------编程问答-------------------- 需alert --------------------编程问答-------------------- ajax 最好 然后执行OpenAgent --------------------编程问答-------------------- ajax可以 --------------------编程问答-------------------- var tdir=GetDataDir();
var xmlhttp = false;
var unitid=document.forms[0].Unid.value;
var pathname = tdir+"/test.nsf/unlock?Openagent&id="+unitid+"idend&wbx";
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.Open('Post', pathname, false);
xmlhttp.Send(false); --------------------编程问答-------------------- 个人认为还是在叶面里面添加一个按钮,按钮执行公式@Command([ToolsRunMacro]; "AgentName"),在按钮的name中写入一个值,然后在js里面调用 document.all("buttonname").click 就可以了。
补充:企业软件 , Lotus