精华内容
下载资源
问答
  • Window对象之对话

    2015-05-01 19:51:34
    1.分为警告对话框(使用alert打开)和询问回答对话框(使用confirm打开)和提示对话框(使用prompt打开)。代码如下: window.alert("打开一个警告对话框");...该对话框进行处理之前,不能对当前页面
    1.分为警告对话框(使用alert打开)和询问回答对话框(使用confirm打开)和提示对话框(使用prompt打开)。代码如下:
    window.alert("打开一个警告对话框");
    window.confirm("打开一个询问回答对话框");
    window.prompt("打开一个提示对话框");

    2.注意:警告对话框时由当前运行的页面弹出的。在该对话框进行处理之前,不能对当前页面进行操作,并且后面的代码也不会执行。只有将警告对话框进行处理后(单击确定或者关闭对话框),才可以对当前页面进行操作,后面的代码才能执行。

    3.提示对话框中有一个输入框,当用户输入内容后,点击确定按钮,则会返回用户输入的内容。当点击取消时,返回null。代码例子如下:
    Window对象之对话框

    展开全文
  • go使用walk创建window界面,与ai对话

    千次阅读 2019-07-29 17:43:16
    前面我们学过搭建ai服务器:... 下面,我们在window系统中,使用walk创建一个window界面,与ai对话 walk github :https://github.com/lxn/walk 需要用到的第三方包有: go get github.com/gin-gonic/gin...

    前面我们学过搭建ai服务器:https://blog.csdn.net/daily886/article/details/96118130

    下面,我们在window系统中,使用walk创建一个window界面,与ai对话

    walk github :https://github.com/lxn/walk

    需要用到的第三方包有:

    go get github.com/gin-gonic/gin
    go get github.com/lxn/walk
    go get github.com/spf13/viper
    go get github.com/tidwall/gjson
    go get github.com/akavel/rsrc
    go get -u -v golang.org/x/crypto/...

    目录结构如下: 
    项目根目录是 aichatwindow


    aichatwindow的目录结构
    ├── conf                         # 配置文件统一存放目录
    │   ├── config.yaml              # 配置文件
    ├── config                       # 专门用来处理配置和配置文件的Go package
    │   └── config.go                 
    ├── handler                      # 类似MVC架构中的C,用来读取输入,并将处理流程转发给实际的处理函数,最后返回结果
    │   ├── handler.go
    ├── model                        #数据模型
    │   ├── chater.go                  # 图灵参数构造体模型
    │   ├── windowdialog.go                  # walk模型
    ├── pkg                          # 引用的包
    │   ├── errno                    # 错误码存放位置
    │   │   ├── code.go
    │   │   └── errno.go
    ├── aichatwindow.manifest                      # walk需要使用的 manifest 文件
    ├── main.go                      # Go程序唯一入口

    下面,我们根据目录结构,从上往下建立文件夹和文件
    建立文件夹和文件 aichatwindow/conf/config.yaml ,config.yaml 内容如下:

    common:
      #http://www.tuling123.com 图灵机器人接口
      tuling:
        apikey: 你申请的图灵apikey
        api: http://openapi.tuling123.com/openapi/api/v2

    建立文件夹和文件 aichatwindow/config/config.go ,config.go 内容如下:

    package config
    
    import (
    	"github.com/spf13/viper"
    	"time"
    	"os"
    	"log"
    )
    
    // LogInfo 初始化日志配置
    func LogInfo() {
    	file := "./logs/" + time.Now().Format("2006-01-02") + ".log"
    	logFile, _ := os.OpenFile(file,os.O_RDWR| os.O_CREATE| os.O_APPEND, 0755)
    	log.SetFlags(log.Ldate | log.Ltime | log.Lshortfile)
    	log.SetOutput(logFile)
    }
    
    // Init 读取初始化配置文件
    func Init() error {
    	//初始化配置
    	if err := Config();err != nil{
    		return err
    	}
    
    	//初始化日志
    	LogInfo()
    	return nil
    }
    
    // Config viper解析配置文件
    func Config() error{
    	viper.AddConfigPath("conf")
    	viper.SetConfigName("config")
    	if err := viper.ReadInConfig();err != nil{
    		return err
    	}
    	return nil
    }
    
    

    建立文件夹和文件 aichatwindow/handler/handler.go ,handler.go 内容如下:

    package handler
    
    import (
    	"bytes"
    	"net/http"
    	"io/ioutil"
    
    	"github.com/gin-gonic/gin"
    
    	"aichatwindow/pkg/errno"
    )
    
    type Response struct {
    	Code    int         `json:"code"`
    	Message string      `json:"message"`
    	Data    interface{} `json:"data"`
    }
    
    //返回json 格式
    func SendResponse(c *gin.Context,err error,data interface{}){
    	code,message := errno.DecodeErr(err)
    
    	//总是返回http状态ok
    	c.JSON(http.StatusOK,Response{
    		Code: code,
    		Message:message,
    		Data: data,
    	})
    
    }
    
    //返回html 格式
    func SendResponseHtml(c *gin.Context,err error,data string){
    	c.Header("Content-Type", "text/html; charset=utf-8")
    	//总是返回http状态ok
    	c.String(http.StatusOK,data)
    }
    
    //http请求
    func HttpRequest(api string,json string,method string) (string, error) {
    	jsonStr := []byte(json)
    	req, err := http.NewRequest(method, api, bytes.NewBuffer(jsonStr))
    	req.Header.Set("Content-Type", "application/json") //使用json格式传参
    
    	client := &http.Client{}
    	resp, err := client.Do(req)
    	if err != nil {
    		return "", errno.ApiServerError
    	}
    	defer resp.Body.Close()
    
    	body, _ := ioutil.ReadAll(resp.Body)
    
    	if !(resp.StatusCode == 200) {
    		return "",  errno.ApiServerError
    	}
    	return string(body), nil
    }

    建立文件夹和文件 aichatwindow/model/chater.go ,chater.go 内容如下:

    package model
    
    import (
    	"encoding/json"
    
    	"aichatwindow/pkg/errno"
    )
    
    /*
    传入参数 json
    {
    	"reqType":0,
        "perception": {
            "inputText": {
                "text": "附近的酒店"
            },
            "inputImage": {
                "url": "imageUrl"
            },
            "selfInfo": {
                "location": {
                    "city": "北京",
                    "province": "北京",
                    "street": "信息路"
                }
            }
        },
        "userInfo": {
            "apiKey": "",
            "userId": ""
        }
    }
    */
    
    type Chatting struct {
    	ReqType    int        `json:"reqType"`
    	Perception Perception `json:"perception"`
    	UserInfo   UserInfo   `json:"userInfo"`
    }
    
    type InputText struct {
    	Text string `json:"text"`
    }
    
    type Perception struct {
    	InputText InputText `json:"inputText"`
    }
    
    type UserInfo struct {
    	ApiKey string `json:"apiKey"`
    	UserId string `json:"userId"`
    }
    //更新 图灵参数构造体 信息
    func UpdateChatting(userId string, text string, chattingInfo Chatting) Chatting {
    	chattingInfo.UserInfo.UserId = userId
    	chattingInfo.Perception.InputText.Text = text
    	return chattingInfo
    }
    //建立 图灵参数构造体
    func BuildChatting(text string, userId string,appKey string) Chatting {
    	chatting := Chatting{ReqType: 0}
    	chatting.Perception = buildPerception(text)
    	chatting.UserInfo = buildUserInfo(userId,appKey)
    	return chatting
    }
    //建立 Perception
    func buildPerception(text string) Perception {
    	perception := Perception{buildInputText(text)}
    	return perception
    }
    //建立 InputText
    func buildInputText(text string) InputText {
    	inputText := InputText{text}
    	return inputText
    }
    //建立 UserInfo
    func buildUserInfo(userId string,appKey string) UserInfo {
    	return UserInfo{appKey, userId}
    }
    
    //构造体转换成字符串
    func ConvertJson(chattingInfo Chatting) (string,error) {
    	jsons, errs := json.Marshal(chattingInfo)
    	if errs != nil {
    		return "", errno.ModelError
    	}
    	return string(jsons),nil
    }

    建立文件夹和文件 aichatwindow/model/windowdialog.go ,windowdialog.go 内容如下:

    package model
    
    import (
    	"fmt"
    	"strconv"
    
    	"github.com/tidwall/gjson"
    	"github.com/spf13/viper"
    	"github.com/lxn/walk"
    	. "github.com/lxn/walk/declarative"
    
    	. "aichatwindow/handler"
    )
    
    /*-------------------window界面-------------------*/
    func OpenWindow() {
    	mw := &MyMainWindow{}
    
    	if _, err := (MainWindow{
    		AssignTo: &mw.MainWindow,
    		Title:    "AI对话",
    		//Icon:     "test.ico",
    		MinSize:  Size{300, 400},
    		Layout:   VBox{},
    		Children: []Widget{
    			GroupBox{
    				Layout: HBox{},
    				Children: []Widget{
    					LineEdit{
    						AssignTo: &mw.searchBox,
    					},
    					PushButton{
    						Text:      "对话",
    						OnClicked: mw.clicked,
    					},
    				},
    			},
    			TextEdit{
    				AssignTo: &mw.textArea,
    			},
    			ListBox{
    				AssignTo: &mw.results,
    				Row:      5,
    			},
    		},
    	}.Run());
    	err != nil {
    		fmt.Printf("Run err: %+v\n",err)
    	}
    }
    
    type MyMainWindow struct {
    	*walk.MainWindow
    	searchBox *walk.LineEdit
    	textArea  *walk.TextEdit
    	results   *walk.ListBox
    }
    
    func (mw *MyMainWindow) clicked() {
    	word := mw.searchBox.Text()
    	model := []string{}
    	for _, value := range search( word) {
    		model = append(model, fmt.Sprintf("对话回复:%v", value))
    	}
    	fmt.Println(model)
    	mw.results.SetModel(model)
    }
    
    /*-------------------图灵接口-------------------*/
    //获取tuling接口回复
    func TulingAi(info string) (string,error) {
    	api := viper.GetString("common.tuling.api")
    
    	//发送http请求图灵api  , body是http响应
    	var body, resultErrs = HttpRequest(api,info,"POST")
    	if resultErrs != nil {
    		fmt.Printf("HttpRequest err: %+v\n",resultErrs)
    	}
    
    	return body, nil
    }
    
    
    //图灵搜索
    func search( word string) (res []string) {
    	res = []string{}
    	var userId = "1";
    	//图灵接口参数构造体
    	var chattingInfo = BuildChatting(word,userId, viper.GetString("common.tuling.apikey"))
    	fmt.Printf("chattingInfo: %+v\n",chattingInfo)
    	// 参数构造体 转换成 字符串
    	chatstr,err := ConvertJson(chattingInfo)
    	if err != nil{
    		fmt.Printf("ConvertJson err: %+v\n",err)
    		return
    	}
    
    	//调用图灵接口
    	body,err := TulingAi(chatstr)
    	if err != nil{
    		fmt.Printf("TulingAi err: %+v\n",err)
    		return
    	}
    	fmt.Printf("body err: %+v\n",body)
    	var results string
    	// 使用gjson 获取返回结果的 resultType
    	result := gjson.Get(body, "results.#.resultType")
    	for key, name := range result.Array() {
    		//如果 resultType 是 text格式
    		if name.String() == "text"{
    			//获取对应 key 的 values里的text ,就是图灵回复的文字
    			getstring := "results."+strconv.Itoa(key)+".values.text"
    			fmt.Printf("getstring: %+v\n",getstring)
    			result_text := gjson.Get(body,getstring)
    			results = result_text.String()
    			res = append(res, results)
    		}
    	}
    	return
    }

    建立文件夹和文件 aichatwindow/pkg/errno/code.go ,code.go 内容如下:

    package errno
    
    var (
    	// Common errors
    	OK                  = &Errno{Code: 0, Message: "OK"}
    	VALUEERROR        = &Errno{Code: -1, Message: "输入错误"}
    
    	InternalServerError = &Errno{Code: 10001, Message: "服务器错误"}
    	ApiServerError = &Errno{Code: 20001, Message: "接口服务器错误"}
    	ModelError = &Errno{Code: 30001, Message: "聊天模型错误"}
    )

    建立文件夹和文件 aichatwindow/pkg/errno/errno.go ,errno.go 内容如下:

    package errno
    
    import "fmt"
    
    type Errno struct {
    	Code int
    	Message string
    }
    
    //返回错误信息
    func (err Errno) Error() string{
    	return err.Message
    }
    
    //设置 Err 结构体
    type Err struct {
    	Code int
    	Message string
    	Err error
    }
    
    //声明构造体
    func New(errno *Errno,err error) *Err{
    	return &Err{Code:errno.Code,Message:errno.Message,Err:err}
    }
    
    //添加错误信息
    func (err *Err) Add(message string) error{
    	err.Message += " " + message
    	return err
    }
    
    //添加指定格式的错误信息
    func (err * Err) Addf(format string,args...interface{}) error{
    	err.Message += " " + fmt.Sprintf(format,args...)
    	return err
    }
    
    //拼接错误信息字符串
    func (err *Err) Error() string{
    	return fmt.Sprintf("Err - code: %d, message: %s, error: %s",err.Code,err.Message,err.Err)
    }
    
    // 解析 错误信息, 返回字符串
    func DecodeErr(err error) (int,string){
    	if err == nil{
    		return OK.Code,OK.Message
    	}
    	switch typed := err.(type) {
    	case *Err:
    		return typed.Code,typed.Message
    	case *Errno:
    		return typed.Code,typed.Message
    	default:
    	}
    	return InternalServerError.Code,err.Error()
    }
    

    建立文件夹和文件 aichatwindow/aichatwindow.manifest , aichatwindow.manifest内容如下:

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="SomeFunkyNameHere" type="win32"/>
        <dependency>
            <dependentAssembly>
                <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*"/>
            </dependentAssembly>
        </dependency>
        <application xmlns="urn:schemas-microsoft-com:asm.v3">
            <windowsSettings>
                <dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
                <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">True</dpiAware>
            </windowsSettings>
        </application>
    </assembly>

    建立文件夹和文件 aichatwindow/main.go ,main.go 内容如下:

    package main
    
    import (
    	"fmt"
    
    	"aichatwindow/config"
    	"aichatwindow/model"
    )
    
    func main() {
    	if err := config.Init();err != nil{
    		fmt.Println(err)
    	}
    
    	model.OpenWindow()
    }
    

    初始化包

    [root@localhost aichatwindow]# go mod init aichatwindow
    go: creating new go.mod: module aichatwindow
    

    使用rsrc命令创建 rsrc.syso文件

    [root@localhost aichatwindow]# find / -name rsrc
    /root/go/bin/rsrc
    /root/go/pkg/mod/cache/download/github.com/akavel/rsrc
    /root/go/pkg/mod/github.com/akavel/rsrc@v0.8.0/rsrc
    
    
    [root@localhost aichatwindow]# /root/go/bin/rsrc -manifest aichatwindow.manifest -o rsrc.syso

    打包成window系统的 .exe 文件

    [root@localhost aichatwindow]# CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
    
    
    [root@localhost aichatwindow]# ll
    total 21180
    -rwxr-xr-x. 1 root root 21651456 Jul 29 17:38 aichatwindow.exe
    -rw-r--r--. 1 root root      889 Jul 29 17:14 aichatwindow.manifest
    drwxr-xr-x. 2 root root       25 Jul 29 16:52 conf
    drwxr-xr-x. 2 root root       23 Jul 29 16:52 config
    -rw-------. 1 root root      614 Jul 29 17:24 go.mod
    -rw-------. 1 root root    17061 Jul 29 17:24 go.sum
    drwxr-xr-x. 2 root root       24 Jul 29 16:52 handler
    -rw-r--r--. 1 root root      175 Jul 29 17:14 main.go
    drwxr-xr-x. 2 root root       46 Jul 29 16:52 model
    drwxr-xr-x. 3 root root       19 Jul 29 16:52 pkg
    -rw-r--r--. 1 root root     1069 Jul 29 17:38 rsrc.syso
    

    把aichatwindow.exe复制到window系统下,双击运行 aichatwindow.exe 即可运行,效果如下:

    若提示错误,/root/go/pkg/mod/github.com/lxn/walk@v0.0.0-20190619151032-86d8802c197a/icon.go:121:19: undefined: "golang.org/x/sys/windows".GetSystemDirectory  ,解决方法如下:

    [root@localhost aichatwindow]# go get -u -v golang.org/x/crypto/...
    
    [root@localhost aichatwindow]# rsrc -manifest aichatwindow.manifest -o rsrc.syso
    

    参考:https://www.oschina.net/code/snippet_1375875_33929

    参考:https://blog.csdn.net/weixin_34245082/article/details/86279240

     

    展开全文
  • 打造一个window桌面应用:在线聊天对话机器人

    千次阅读 多人点赞 2021-07-21 20:51:19
    本文目标:打造一个window桌面应用:在线聊天对话机器人。 今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图 聊天客户端桌面应用 设计Ui:Pyqt5 ...

    大家好,我是辰哥~~~

    本文目标:打造一个window桌面应用:在线聊天对话机器人。

    今天辰哥教大家做一个在线聊天对话机器人桌面应用,已经打包成exe可执行文件,读者可以直接拿来使用, 先上演示图

    聊天客户端桌面应用

    设计Ui:Pyqt5

    对话回答:图灵机器人

    打包EXE:Pyinstaller

    本文通过界面设计、后端处理、效果演示、打包exe这四方面去进行讲解。

    打包好EXE下载地址:https://wwi.lanzoui.com/iCygNrp0c6f

    01、界面设计

    1.安装pyqt5

    1.安装PyQt5工具

    pip install PyQt5
    

    2.安装Qt Designer图形界面开发工具

    pip install PyQt5-tools
    

    2.设计界面

    在搜索框中搜索: Desginer

    创建桌面应用

    开始设计,其中左边是控件、中间是设计结果、右边控件属性设置。

    最终的设计结果如下:(辰哥的简单设计)

    保存为ui的后缀,如:chenge.ui

    3.ul界面转为python代码

    通过Desginer设计的保存的ul文件可以直接转为python代码,其命令如下:

    pyuic5 -o chenge.py chenge.ui
    

    预览代码

    02、、后端处理

    1.启动界面

    提示:这个chenge.py文件是无法执行运行,我们需要新建一个主函数去调用chenge.py

    辰哥这里新建了一个py文件:main.py

    编辑main.py

    import sys
    import chenge  # GUI文件的名称,chenge.ui
    from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget
     
     
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        MainWindow = QMainWindow()
        ui = chenge.Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    
    

    运行结果:

    这时候的界面点击和输入是无反应,只能看不能用!下面开始进行编写控件处理逻辑。

    2.接入图灵机器人

    在main.py文件中新建一个chat函数方法:通过调用chat函数,传入问题,返回解答

    3.控件处理逻辑

    绑定监听事件

    1、输入框

    2、展示框

    3、按钮(发送)

    在chenge.py文件中

    #绑定监听事件
    self.pushButton.clicked.connect(MainWindow.pushButton)
    QtCore.QMetaObject.connectSlotsByName(MainWindow)
    MainWindow.setTabOrder(self.history, self.pushButton)
    MainWindow.setTabOrder(self.textEdit, self.pushButton)
    
    

    逻辑:

    1.获取输入框

    2.调用chat(图灵机器人)

    3.添加到历史中

    4.清空输入框

    def pushButton(self):
        #提问
        q_text = self.ui.textEdit.toPlainText()
        #清空输入框
        self.ui.textEdit.clear()
        #调用图灵机器人
        a_text = self.chat(q_text)
        a_text = "【机器人】:"+a_text
        ## 记录到聊天记录中
        history = self.ui.history.toPlainText()
        history = history+"\n"+"【我】:"+q_text+"\n"+a_text
        self.ui.history.setText(history)
    
    

    03 效果演示

    动图:

    最终图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-94kXOrVS-1626871871364)(https://oscimg.oschina.net/oscnet/69c9a323-5bda-4501-aaf2-3cd1a8f4698b.png)]

    04、打包exe

    将python文件打包成一个exe可执行文件

    通过命令:

    pyinstaller -F -w main.py

    经过辰哥的测试,打包好的exe文件可以在任何一台电脑上执行,并且不赖主机的python环境

    由于辰哥技术有限,里面带有图片打包出错,因此这里辰哥先把图片去掉了,后面再考虑如何带图片的打包

    打包好EXE下载地址:https://wwi.lanzoui.com/iCygNrp0c6f

    05、小结

    本文目标:打造一个window桌面应用:在线聊天对话机器人。从界面设计,到处理后端对话,最后打包成exe。

    不会的小伙伴,感觉动手练习!!!!最后说一声:原创不易,求给个赞!

    展开全文
  • window.showModalDialog(模态对话窗口)

    千次阅读 2009-04-07 16:29:00
    ShowModalDialog函数的功能:打开一个子窗口,并且可与父窗口相互传递数据,它与window.open的最大区别就在于由ShowModalDialog打开子窗口后,父窗口将不能操作。使用方法:vReturnValue = window.showModalDialog...

     ShowModalDialog函数的功能:
    打开一个子窗口,并且可与父窗口相互传递数据,它与window.open的最大区别就在于由ShowModalDialog打开子窗口后,父窗口将不能操作。
    使用方法:
    vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeatures])
    参数说明:
    sURL
    必选参数,类型:字符串。用来指定对话框要显示的文档的URL。
    vArguments
    可选参数,类型:变体。用来向对话框传递参数。传递的参数类型不限,包括数组等。对话框通过window.dialogArguments来取得传递进来的参数。
    sFeatures
    可选参数,类型:字符串。用来描述对话框的外观等信息,可以使用以下的一个或几个,用分号“;”隔开。
            dialogHeight 对话框高度,不小于100px,IE4中dialogHeight 和 dialogWidth 默认的单位是em,而IE5中是px,为方便其见,在定义modal方式的对话框时,用px做单位。
       dialogWidth: 对话框宽度。
       dialogLeft: 距离桌面左的距离。
       dialogTop: 离桌面上的距离。
       center: {yes | no | 1 | 0 }:窗口是否居中,默认yes,但仍可以指定高度和宽度。
       help: {yes | no | 1 | 0 }:是否显示帮助按钮,默认yes。
       resizable: {yes | no | 1 | 0 } [IE5+]:是否可被改变大小。默认no。
       status: {yes | no | 1 | 0 } [IE5+]:是否显示状态栏。默认为yes[ Modeless]或no  [Modal]。
           scroll:{ yes | no | 1 | 0 | on | off }:指明对话框是否显示滚动条。默认为yes。


           Minimize,Maximize参数分别复杂最小化最大化

    参数传递方法:
    父窗口向子窗口传递参数采用ShowModalDialog的第2个参数即可,父窗口要获取子窗口传回的参数则可通过ShowModalDialog函数的返回值获取。
    子窗口获取父窗口参数的方法为采用子窗口window对象dialogArguments属性获取,例如:
    var a=window.dialogArguments;
    子窗口向父窗口返回参数采用window.returnValue属性,如:
    window.returnValue=1;
    window.close();

     

    通常使用showModalDialog的时候
    如果有Form需要submit的话
    通常无法submit到自己的窗口,而会产生一个新窗口

    只需要在<Head>与</Head>之间加上<base target='_self'>

    展开全文
  • Xwindow

    2012-11-17 22:04:00
    西安高性能算中心完全免费向合格申请用户提供计算资源,用户使用方式一般是通过远 程SSH Client 客户端来使用中心的资源,然而对于有些用户来说,可能其运行的不是命令行 程序,而是GUI 应用程序...Window对话的方式。
  • go使用walk创建window界面,与ai对话:https://blog.csdn.net/daily886/article/details/97657654 下面我们为该对话功能拓展+键盘回车事件+聊天记录+隐藏cmd窗口 修改aichatwindow/model/windowdialog.go,window...
  • 父页面函数如下: ...window.showModalDialog('ResultLoad.do',window, 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') } 'Res
  • ,window, 'height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no') } 'ResultLoad.do' 是到了后台可以控制器里这样写 return new ...
  • 问题内容:请教:使用JS调用Window.close()方法关闭一个窗口是,如何禁止弹出对话窗口?原讨论链接:http://community.csdn.net/expert/topicview1.asp?id=3670997 所属论坛:JavaScript 审核组:WEB开发 提问者:...
  • JS window

    2017-09-23 15:25:47
    最近学习JS,可能文档里面的东西都是我从别处拷贝和总结过来的,希望原著不要介意啊,我只是学习完了后,喜欢自己留个笔记而已,以后不会或者遇到同样的问题自己查阅方便而已。 浏览器对象模型(BOM)是js能与...
  • 所有浏览器都支持 window 对象。它表示浏览器窗口。 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。 全局函数是 window 对象的方法。 甚至 ...
  • JavaScript Window

    2017-04-17 15:06:26
     浏览器对象模型BOM(Browser Object Model),使JS有能力与浏览器“对话”。  所有浏览器都支持window对象,它表示浏览器窗口。所有JS全局对象、函数以及变量均自动成为window对象的成员。全局变量是window对象的...
  • Window 对象

    2017-05-08 11:39:48
    浏览器对象模型 (BOM) 使 JavaScript 有能力与浏览器“对话”。 浏览器对象模型 (BOM) 浏览器对象模型(Browser Object Model)尚无正式标准。 由于现代浏览器已经(几乎)实现了 JavaScript 交互性...
  • js window 对象

    2013-06-27 10:48:57
    Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有...由于window对象是其它大部分对象的共同祖先,调用window对象的方法和属性时,可以省略window对象的引用。例如:window.do
  • window 对象

    2015-10-26 20:56:37
    [window.]属性 [window.]方法(参数) opener.属性 opener.方法(参数) self.属性 self.方法(参数) parent.属性 parent.方法(参数) top.属性 top.方法(参数) 窗口名称.属性 ...
  • 网页程序中, 有时我们会希望使用者按下按钮后开启一个保持在原窗口前方的子窗口, 而IE中,我们可以使用showModalDialog来达成, 语法如下 : vReturnValue = window.showModalDialog(sURL [, vArguments] [, ...
  • 以下内容复制的,记录一下 原地址:http://blog.csdn.net/kongtoubudui/article/details/7576374网页程序中, 有时我们会希望使用者按下按钮后开启一个...语法如下 :vReturnValue = window.showModalDialog(sURL [,
  • window对象

    2008-03-12 22:32:00
    熟练window对象的open、close、alert、confirm、prompt、setTimeout、clearTimeout、setInterval、clearInterval、moveBy、resizeBy、scrollBy方法的使用 掌握window对象的moveTo、resizeTo、scr
  • window对象用法

    千次阅读 2017-12-22 09:22:06
    open方法语法格式:window.open(URL,窗口名称,窗口风格)功能:打开一个新的窗口,并窗口中装载指定URL地址的网页。说明: open方法用于打开一个新的浏览器窗口,并新窗口中装入一个指定的URL地址 open方法...
  • window方法大全

    2015-04-21 14:12:15
    window对象的status、location、name、self、opener属性的使用   Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,都会...
  • 即:使JS可以与浏览器“对话”; 一、window对象 所有浏览器都支持window对象。 概念上讲,一个html文档对应一个window对象。 功能上讲:控浏览器窗口的; 使用上讲:window对象不需要创建对象,直接使用即可。...
  • DOM Window 对象

    2011-11-24 22:25:46
    Window 对象 The Window object represents the browser window. A Window object is created automatically with every instance of a or tag. window对象代表了浏览器的窗口。每当窗口含有或是标签就会自动建立...
  • JS Window方法小结

    2015-04-14 16:17:25
    Window 对象: 所有浏览器都支持 window 对象。它表示浏览器窗口。 所有 JavaScript 全局对象、函数以及变量均自动成为 window 对象的成员。 全局变量是 window 对象的属性。...功能:打开一个新的窗口,并
  • window ELectron开发实战

    千次阅读 2019-02-13 09:57:10
    如果要卸载这个应用,可以利用Windows “程序和功能”的对话窗口来卸载,这样确保添加开始菜单和桌面的快捷方式得以移除。 更新   现在用户可以使用你的安装程序来安装文件了,有了Squirrel 会让更新...
  • 客户端javascript之window

    2014-01-14 18:27:58
    客户端javascript之window 1.计时器setTimeout()和setInterval() setTimeout()与setInterval()是window对象的两个计时器方法。可以用来注册指定时间后函数执行一次或 者反复调用函数。 setTimeout()和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,387
精华内容 8,554
关键字:

在window的对话