搜索
aardio官方社区 门户 查看主题

webkit浏览器窗口加载子HTML或aardio文件如何在子文件中取main文件的定义的变量值

发布者: dsp2138 | 发布时间: 2018-1-13 11:03| 查看数: 809| 评论数: 8|帖子模式

本帖最后由 dsp2138 于 2018-1-13 11:04 编辑

webkit浏览器窗口加载子HTML或aardio文件如何在子文件中取main文件的定义的变量值

main.aardio
在此文件中定义变量
str1="hello world"
  1. import win.ui;
  2. /*DSG{{*/
  3. mainForm = win.form(text="webkit浏览器支持库";right=759;bottom=469;border="none";mode="popup")
  4. mainForm.add()
  5. /*}}*/

  6. //导入webkit支持库
  7. import web.kit.form;
  8. import web.kit.jsFunction;
  9. var wbKitView = web.kit.form(mainForm);//创建webkit浏览器窗口
  10. var str1="hello world";
  11. //使用external接口定义网页脚本可调用的本地函数
  12. wbKitView.external = {

  13.     aardioCall = function(str){
  14.         mainForm.msgbox(str);
  15.     };
  16. }

  17. //打开链接时触发
  18. wbKitView.onNavigation = function(url,navigationType){
  19.         if( navigationType == 0/*_WKE_NAVIGATION_TYPE_LINKCLICK*/ ){
  20.        
  21.         }
  22.         return true;
  23. }

  24. import wsock.tcp.simpleHttpServer;
  25. wbKitView.go( wsock.tcp.simpleHttpServer.startUrl("/html/index.aardio") );

  26. //可以使用CSS选择器获取HTML节点对象
  27. wbKitView.querySelector("#header .title-bar .title").innerText = "我 的 软 件";

  28. //添加可拖动边框
  29. import win.ui.resizeBorder;
  30. win.ui.resizeBorder(mainForm);

  31. //添加阴影
  32. import win.ui.shadow;
  33. win.ui.shadow(mainForm);

  34. //限定最大化范围
  35. import win.ui.minmax;
  36. win.ui.minmax(mainForm);

  37. mainForm.show();
  38. win.loopMessage();
复制代码


在html目录下的index.aardio中调用模板语法
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4.         <meta charset="UTF-8">
  5.         <title>index</title>
  6. </head>
  7. <body>
  8.         <?
  9.                 print(str1);
  10.         ?>
  11. </body>
  12. </html>
复制代码

这样是无法获取到main.aardio文件中的变量的。
1、在index.aardio文件中如何调用main.aardio文件中的str1变量。
2、main.aardio已经创建了wbKitView,在index.aardio中还需要再创建wbKitView窗体吗?如果不用,如何在模板语法中使用web.kit库中的函数
http://bbs.aardio.com/forum.php?mod=viewthread&tid=13317&highlight=%C4%A3%B0%E5
,在这个贴子中大致提到了这个问题。但还是有不少疑问。

最新评论

cad 发表于 2018-1-13 12:24:04
import win.ui;
/*DSG{{*/
var winform = win.form(text="webkit浏览器简单示例";right=1123;bottom=570)
/*}}*/

import web.kit.form;  
var wbKitView= web.kit.form(winform);

var str1="hello world";

import wsock.tcp.simpleHttpServer;
wbKitView.go( wsock.tcp.simpleHttpServer.startUrl(
"/res/html/main.aardio?str1=" ++ str1) );

winform.show()
win.loopMessage();

这样接收参数
<?= ..request.get["str1"] ?>

Jacen.He 发表于 2018-1-13 13:53:50
如果用了simpleHttpServer,
就是cad说的,完全就跟写网站一样,get,post传参数。
因为 simpleHttpServer是多线程,用 thread.set也可以。

如果是 wsock.tcp.asynHttpServer ,因为他们是同一个线程,可以直接访问主窗体对象 mainForm
dsp2138 发表于 2018-1-13 16:47:33
Jacen.He 发表于 2018-1-13 13:53
如果用了simpleHttpServer,
就是cad说的,完全就跟写网站一样,get,post传参数。
因为 simpleHttpServer ...

谢谢校长!
另外还有个webkit中的问题
  1. <input type="text" name="lastname" value="Mouse">
复制代码

像这样的输入框,为啥不能输入,不能获取输入焦点?
设置了event.stopPropagation,也是如此,求教
Jacen.He 发表于 2018-1-13 16:54:31
dsp2138 发表于 2018-1-13 16:47
谢谢校长!
另外还有个webkit中的问题

试了可以输入,注意提问发可重现问题的代码,描述清楚
dsp2138 发表于 2018-1-13 17:28:19
或许没描述清楚
是这样的
html目录下的main.aardio中插入<input type="text" name="lastname" value="Mouse">
就是创建新的webkit工程也是如此。单独运行html/mian.arrdio这样input是可以输入的
但运行主程序main.aardio是不能输入的。
我这里是win10企业版
Jacen.He 发表于 2018-1-13 23:28:19
dsp2138 发表于 2018-1-13 17:28
或许没描述清楚
是这样的
html目录下的main.aardio中插入


提供可重现问题的代码节省的是你自己的时间,
遇到类似的问题,请先检查CSS,HTML中的问题。最后再找浏览器或者操作系统的问题。

你这里是CSS中的  -webkit-user-select: none;  就导致的,
如果有输入框,请修改为

*:not(input,textarea) {
    -webkit-user-select: none;
}
dsp2138 发表于 2018-1-13 23:52:29
Jacen.He 发表于 2018-1-13 23:28
提供可重现问题的代码节省的是你自己的时间,
遇到类似的问题,请先检查CSS,HTML中的问题。最后再找浏 ...


百度到了这个问题,谢谢校长教诲!
还是知识点欠缺了!
-------------------
http://www.css88.com/book/css/properties/user-interface/user-select.htm
估计还有其他同学遇到了这个问题。特贴出css3的user-select让大家学习。
Jacen.He 发表于 2018-1-17 07:07:53
dsp2138 发表于 2018-1-13 23:52
百度到了这个问题,谢谢校长教诲!
还是知识点欠缺了!
-------------------
你说的很对,其他人可能也会遇到这个困扰,
工程范例里的代码我已经修改了,感谢你发现问题,
我经常提醒大家尽可能提供可以重现问题的信息 - 是希望可以提升效率节省双方的时间,感谢理解。

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-5-28 11:18 , Processed in 0.062500 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表