Board logo

标题: [BUG反馈] 在hta中使用open打开网页 [打印本页]

作者: qidizi    时间: 2010-1-3 21:08     标题: 在hta中使用open打开网页

本帖最后由 qidizi 于 2010-1-20 21:24 编辑

帖子已经回收
作者: qidizi    时间: 2010-1-3 21:09

多打开了一个空白页.
作者: duckZCX    时间: 2010-1-4 14:01

呃,楼主能提供一个现成的HTA么?
作者: qidizi    时间: 2010-1-4 14:36

窗口名字:<INPUT id=winn size=10 value="win">(win窗口对象名,如已存在此窗口,将替换该窗口网址.)<BR> <input type=button value=载入js onclick="eval(js.value);showText('所有涵数载入成功,你可以使用所有功能了');">
消息滚屏<INPUT id=autoroll type=checkbox checked=true name=autoroll></a>
        
<INPUT id=uurl name=uurl value="http://buy.taobao.com/auction/buy_now.htm" vars="" style="width:65%;" title="输入网址">
<INPUT type=button value="创建win窗口/更换网址" style="width:20%;" onclick="createW();" title="使用此网址+参数串在新窗口打开;如果不需要参数串,可以清空后再打开.">
<DIV id=msg style="border:1px solid black;width:100%;height:350px; overflow-y:auto; overflow-x:hidden; word-wrap :break-word;" ></DIV><textarea id=js>

window.createW=function()
{
  openUrl($e("uurl").value + $e("uurl").vars,'');
}

window.$e=function(thid)
{
   return document.getElementById(thid);
}
window.showText=function(text)
{ //text:传入的字符串;   
    $e("msg").insertAdjacentHTML("beforeEnd", new Date().toLocaleString() + " " + text + '<hr width=100%>');
    if ($e("autoroll").checked) $e("msg").scrollTop = $e("msg").scrollHeight;
    //$e("msg").insertAdjacentHTML("afterBegin", text + '<hr width=100%>');
    //$e("msg").scrollTop = 0;  
}

window.openUrl = function (url, fun)
{
   clearTimeout(window.winer);
   
   if (url != "")
    {      
        try
        {
           window.win.document;
           window.win.location = url;
           showText("替换win对象网址.");
        }catch(e)
       {
          showText("win对象不存在,创建.");
          window.win = open(url, $e("winn").value);
       }
      
       if (window.win == null)
       {
          showText("创建窗口失败,是否浏览器阻止弹出窗口?请允许本网页弹窗.");
          return 0;
       }
      
       try
       {
         showText("新窗口网页域名:" + window.win.location.host);
       }catch(e)
        {
         showText("注意:获取新窗口域名失败,动作中止!<BR>"
             +"可能新窗口网页域名[" + getHost(url) + "]跟本页面域名["+ location.host + "]不同,"
             +"如果在本页面(非hta)获取新窗口(不同域名)中的内容时会因为无权限禁止访问."
             +"如果服务器返回页面转向到相同域名时,还是可以访问的.");
         return 0;
        }
        
       showText("打开网址:" + url + "<BR>请不要进行其它操作....<BR>正在载入网页中,请等待载入完成...");      
       url = "";
    }else if (window.win.document.readyState == 'complete')
   {
      //alert(fun);
      eval(fun);
      showText("网页载入完成");
      return 0;
   }
   
  window.winer = setTimeout("openUrl('','" + fun + "')",1000);
}

window.getHost = function(url)
{
    showText("获取域名(只支持国际域名解析,即http(s)://英文或小数点或数字或-等字符组成;");
    if ( (url == undefined) || (typeof(url) != "string") || (! /^ *https?\:\/\/([.a-z0-9\-]*)/gi.test(url)))return "";
    else return RegExp.$1;   
}
</textarea>
作者: qidizi    时间: 2010-1-4 14:41

还有就是,tw在没选默认浏览器时,ie不存在时,hta发出的open动作还是到了tw来,因为错误==很多功能不完整.
测试不方便.这时得关掉tw时,才转到ie中.很麻烦.




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2