JS页面权限最大化 if (window != top)top.location.href = location.href;

本文介绍了一段用于浏览器中检查当前窗口是否为顶级窗口的JavaScript代码,并实现如果当前窗口不是顶级窗口,则将其重定向到顶级窗口的功能。

if (window != top)
top.location.href = location.href;

气垫导轨实验系统 - 文件组织与实现 在 WinForms 项目中,核心实现代码和界面设计代码通常分别存放在不同的文件中,遵循 C# 的 partial 类设计模式。以下是完整的文件组织方案: 文件结构 PhysicsExperimentMonitor/ ├── MainForm.cs // 核心逻辑代码 ├── MainForm.Designer.cs // 界面设计代码 ├── Program.cs // 应用程序入口 └── ExperimentData.cs // 实验数据模型(可选) 1. MainForm.cs - 核心逻辑实现 C# using System; using System.Collections.Generic; using System.Drawing; using System.IO.Ports; using System.Text.RegularExpressions; using System.Windows.Forms; using System.Windows.Forms.DataVisualization.Charting; namespace PhysicsExperimentMonitor { public partial class MainForm : Form { // 实验数据结构 public class ExperimentData { // 属性定义(与之前相同) // ... } // 成员变量 private SerialPort serialPort; private List<ExperimentData> experimentHistory = new List<ExperimentData>(); private int currentExperimentId = 1; private ExperimentData currentExperiment; // 当前实验参数 private double currentLightBlockWidth; private double currentGateDistance; private double currentSliderMass; private double currentWeightMass; // 正则表达式 private Regex timeRegex = new Regex(@"光电门(\d)挡光时间[::]\s*(\d+\.?\d*)\s*s"); private Regex velocityRegex = new Regex(@"通过光电门(\d)速度[::]\s*(\d+\.?\d*)\s*m/s"); private Regex accelRegex = new Regex(@"加速度[::]\s*(\d+\.?\d*)\s*m/s²"); private Regex dataStartRegex = new Regex(@"=+实验数据=+"); public MainForm() { InitializeComponent(); InitializeSerialPort(); InitializeChart(); InitializeDataGridView(); // 填充可用串口 cmbPorts.Items.AddRange(SerialPort.GetPortNames()); if (cmbPorts.Items.Count > 0) cmbPorts.SelectedIndex = 0; // 设置默认波特率 cmbBaudRate.SelectedIndex = 3; // 115200 // 设置默认参数值 txtLightBlockWidth.Text = "0.01"; txtGateDistance.Text = "0.3"; txtSliderMass.Text = "0.2"; txtWeightMass.Text = "0.05"; lblStatus.Text = "就绪"; btnEndExperiment.Enabled = false; } private void InitializeSerialPort() { serialPort = new SerialPort(); serialPort.DataReceived += SerialPort_DataReceived; } private void InitializeChart() { // 图表初始化代码(与之前相同) // ... } private void InitializeDataGridView() { // 数据表格初始化代码(与之前相同) // ... } // 启动新实验 private void btnStartExperiment_Click(object sender, EventArgs e) { // 启动实验逻辑(与之前相同) // ... } // 结束当前实验 private void btnEndExperiment_Click(object sender, EventArgs e) { // 结束实验逻辑(与之前相同) // ... } // 数据接收处理 private void SerialPort_DataReceived(object sender, SerialDataReceivedEventArgs e) { // 串口数据处理(与之前相同) // ... } // 处理串口数据 private void ProcessSerialData(string data) { // 数据解析逻辑(与之前相同) // ... } // 完成当前实验数据的收集 private void CompleteExperiment() { // 完成实验逻辑(与之前相同) // ... } // 更新数据显示 private void UpdateDataDisplay(ExperimentData data) { // 更新表格显示(与之前相同) // ... } // 更新图表 private void UpdateChart() { // 更新图表(与之前相同) // ... } // 连接串口 private void btnConnect_Click(object sender, EventArgs e) { // 串口连接逻辑(与之前相同) // ... } // 清空数据 private void btnClearData_Click(object sender, EventArgs e) { // 清空数据逻辑(与之前相同) // ... } // 参数输入验证 private void ValidateNumericInput(object sender, EventArgs e) { TextBox textBox = sender as TextBox; if (textBox != null) { if (!double.TryParse(textBox.Text, out double value) || value <= 0) { textBox.BackColor = Color.LightPink; btnStartExperiment.Enabled = false; } else { textBox.BackColor = SystemColors.Window; btnStartExperiment.Enabled = double.TryParse(txtLightBlockWidth.Text, out _) && double.TryParse(txtGateDistance.Text, out _) && double.TryParse(txtSliderMass.Text, out _) && double.TryParse(txtWeightMass.Text, out _); } } } // 关闭窗体时断开串口 private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { if (serialPort != null && serialPort.IsOpen) serialPort.Close(); } } } 2. MainForm.Designer.cs - 界面设计代码 C# namespace PhysicsExperimentMonitor { partial class MainForm { private System.ComponentModel.IContainer components = null; // 控件声明 private ComboBox cmbPorts; private ComboBox cmbBaudRate; private Button btnConnect; private DataGridView dgvData; private Button btnExport; private RichTextBox txtLog; private Chart chartAcceleration; private Label label1; private Label label2; private TextBox txtLightBlockWidth; private TextBox txtGateDistance; private TextBox txtSliderMass; private TextBox txtWeightMass; private Label label3; private Label label4; private Label label5; private Label label6; private Button btnStartExperiment; private Button btnEndExperiment; private Label lblStatus; private Button btnClearData; protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } private void InitializeComponent() { System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea(); System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend(); System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series2 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series3 = new System.Windows.Forms.DataVisualization.Charting.Series(); System.Windows.Forms.DataVisualization.Charting.Series series4 = new System.Windows.Forms.DataVisualization.Charting.Series(); this.cmbPorts = new System.Windows.Forms.ComboBox(); this.cmbBaudRate = new System.Windows.Forms.ComboBox(); this.btnConnect = new System.Windows.Forms.Button(); this.dgvData = new System.Windows.Forms.DataGridView(); this.btnExport = new System.Windows.Forms.Button(); this.txtLog = new System.Windows.Forms.RichTextBox(); this.chartAcceleration = new System.Windows.Forms.DataVisualization.Charting.Chart(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.txtLightBlockWidth = new System.Windows.Forms.TextBox(); this.txtGateDistance = new System.Windows.Forms.TextBox(); this.txtSliderMass = new System.Windows.Forms.TextBox(); this.txtWeightMass = new System.Windows.Forms.TextBox(); this.label3 = new System.Windows.Forms.Label(); this.label4 = new System.Windows.Forms.Label(); this.label5 = new System.Windows.Forms.Label(); this.label6 = new System.Windows.Forms.Label(); this.btnStartExperiment = new System.Windows.Forms.Button(); this.btnEndExperiment = new System.Windows.Forms.Button(); this.lblStatus = new System.Windows.Forms.Label(); this.btnClearData = new System.Windows.Forms.Button(); ((System.ComponentModel.ISupportInitialize)(this.dgvData)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.chartAcceleration)).BeginInit(); this.SuspendLayout(); // cmbPorts this.cmbPorts.FormattingEnabled = true; this.cmbPorts.Location = new System.Drawing.Point(20, 20); this.cmbPorts.Name = "cmbPorts"; this.cmbPorts.Size = new System.Drawing.Size(120, 28); this.cmbPorts.TabIndex = 0; // cmbBaudRate this.cmbBaudRate.FormattingEnabled = true; this.cmbBaudRate.Items.AddRange(new object[] { "9600", "19200", "38400", "57600", "115200"}); this.cmbBaudRate.Location = new System.Drawing.Point(150, 20); this.cmbBaudRate.Name = "cmbBaudRate"; this.cmbBaudRate.Size = new System.Drawing.Size(120, 28); this.cmbBaudRate.TabIndex = 1; // btnConnect this.btnConnect.Location = new System.Drawing.Point(280, 20); this.btnConnect.Name = "btnConnect"; this.btnConnect.Size = new System.Drawing.Size(120, 30); this.btnConnect.TabIndex = 2; this.btnConnect.Text = "连接串口"; this.btnConnect.UseVisualStyleBackColor = true; this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click); // dgvData this.dgvData.AllowUserToAddRows = false; this.dgvData.AllowUserToDeleteRows = false; this.dgvData.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.dgvData.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill; this.dgvData.BackgroundColor = System.Drawing.SystemColors.ControlLightLight; this.dgvData.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.dgvData.Location = new System.Drawing.Point(20, 220); this.dgvData.Name = "dgvData"; this.dgvData.ReadOnly = true; this.dgvData.RowHeadersWidth = 51; this.dgvData.RowTemplate.Height = 24; this.dgvData.Size = new System.Drawing.Size(1200, 250); this.dgvData.TabIndex = 3; // btnExport this.btnExport.Location = new System.Drawing.Point(410, 20); this.btnExport.Name = "btnExport"; this.btnExport.Size = new System.Drawing.Size(120, 30); this.btnExport.TabIndex = 4; this.btnExport.Text = "导出数据"; this.btnExport.UseVisualStyleBackColor = true; this.btnExport.Click += new System.EventHandler(this.btnExport_Click); // txtLog this.txtLog.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.txtLog.BackColor = System.Drawing.Color.Black; this.txtLog.Font = new System.Drawing.Font("Consolas", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.txtLog.ForeColor = System.Drawing.Color.White; this.txtLog.Location = new System.Drawing.Point(20, 480); this.txtLog.Name = "txtLog"; this.txtLog.Size = new System.Drawing.Size(1200, 150); this.txtLog.TabIndex = 5; this.txtLog.Text = ""; // chartAcceleration this.chartAcceleration.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); chartArea1.Name = "ChartArea1"; this.chartAcceleration.ChartAreas.Add(chartArea1); legend1.Name = "Legend1"; this.chartAcceleration.Legends.Add(legend1); this.chartAcceleration.Location = new System.Drawing.Point(430, 60); this.chartAcceleration.Name = "chartAcceleration"; series1.ChartArea = "ChartArea1"; series1.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series1.Legend = "Legend1"; series1.Name = "实测加速度"; series2.ChartArea = "ChartArea1"; series2.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series2.Legend = "Legend1"; series2.Name = "理论加速度"; series3.ChartArea = "ChartArea1"; series3.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series3.Legend = "Legend1"; series3.Name = "单片机加速度"; series4.ChartArea = "ChartArea1"; series4.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line; series4.Legend = "Legend1"; series4.Name = "误差(%)"; this.chartAcceleration.Series.Add(series1); this.chartAcceleration.Series.Add(series2); this.chartAcceleration.Series.Add(series3); this.chartAcceleration.Series.Add(series4); this.chartAcceleration.Size = new System.Drawing.Size(790, 150); this.chartAcceleration.TabIndex = 6; this.chartAcceleration.Text = "chart1"; // label1 this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(20, 70); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(117, 20); this.label1.TabIndex = 7; this.label1.Text = "挡光片宽度(m):"; // label2 this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(20, 100); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(117, 20); this.label2.TabIndex = 8; this.label2.Text = "光电门间距(m):"; // txtLightBlockWidth this.txtLightBlockWidth.Location = new System.Drawing.Point(150, 67); this.txtLightBlockWidth.Name = "txtLightBlockWidth"; this.txtLightBlockWidth.Size = new System.Drawing.Size(100, 27); this.txtLightBlockWidth.TabIndex = 9; this.txtLightBlockWidth.Text = "0.01"; this.txtLightBlockWidth.TextChanged += new System.EventHandler(this.ValidateNumericInput); // txtGateDistance this.txtGateDistance.Location = new System.Drawing.Point(150, 97); this.txtGateDistance.Name = "txtGateDistance"; this.txtGateDistance.Size = new System.Drawing.Size(100, 27); this.txtGateDistance.TabIndex = 10; this.txtGateDistance.Text = "0.3"; this.txtGateDistance.TextChanged += new System.EventHandler(this.ValidateNumericInput); // txtSliderMass this.txtSliderMass.Location = new System.Drawing.Point(150, 127); this.txtSliderMass.Name = "txtSliderMass"; this.txtSliderMass.Size = new System.Drawing.Size(100, 27); this.txtSliderMass.TabIndex = 12; this.txtSliderMass.Text = "0.2"; this.txtSliderMass.TextChanged += new System.EventHandler(this.ValidateNumericInput); // txtWeightMass this.txtWeightMass.Location = new System.Drawing.Point(150, 157); this.txtWeightMass.Name = "txtWeightMass"; this.txtWeightMass.Size = new System.Drawing.Size(100, 27); this.txtWeightMass.TabIndex = 13; this.txtWeightMass.Text = "0.05"; this.txtWeightMass.TextChanged += new System.EventHandler(this.ValidateNumericInput); // label3 this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(20, 130); this.label3.Name = "label3"; this.label3.Size = new System.Drawing.Size(117, 20); this.label3.TabIndex = 14; this.label3.Text = "滑块质量(kg):"; // label4 this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(20, 160); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(117, 20); this.label4.TabIndex = 15; this.label4.Text = "砝码质量(kg):"; // label5 this.label5.AutoSize = true; this.label5.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label5.Location = new System.Drawing.Point(280, 70); this.label5.Name = "label5"; this.label5.Size = new System.Drawing.Size(130, 20); this.label5.TabIndex = 16; this.label5.Text = "实验参数设置"; // label6 this.label6.AutoSize = true; this.label6.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.label6.Location = new System.Drawing.Point(20, 190); this.label6.Name = "label6"; this.label6.Size = new System.Drawing.Size(130, 20); this.label6.TabIndex = 17; this.label6.Text = "实验数据表格"; // btnStartExperiment this.btnStartExperiment.BackColor = System.Drawing.Color.LightGreen; this.btnStartExperiment.Location = new System.Drawing.Point(280, 100); this.btnStartExperiment.Name = "btnStartExperiment"; this.btnStartExperiment.Size = new System.Drawing.Size(120, 40); this.btnStartExperiment.TabIndex = 18; this.btnStartExperiment.Text = "开始实验"; this.btnStartExperiment.UseVisualStyleBackColor = false; this.btnStartExperiment.Click += new System.EventHandler(this.btnStartExperiment_Click); // btnEndExperiment this.btnEndExperiment.BackColor = System.Drawing.Color.LightCoral; this.btnEndExperiment.Location = new System.Drawing.Point(280, 150); this.btnEndExperiment.Name = "btnEndExperiment"; this.btnEndExperiment.Size = new System.Drawing.Size(120, 40); this.btnEndExperiment.TabIndex = 19; this.btnEndExperiment.Text = "结束实验"; this.btnEndExperiment.UseVisualStyleBackColor = false; this.btnEndExperiment.Click += new System.EventHandler(this.btnEndExperiment_Click); // lblStatus this.lblStatus.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); this.lblStatus.BackColor = System.Drawing.SystemColors.Info; this.lblStatus.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.lblStatus.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.lblStatus.Location = new System.Drawing.Point(430, 20); this.lblStatus.Name = "lblStatus"; this.lblStatus.Size = new System.Drawing.Size(790, 30); this.lblStatus.TabIndex = 20; this.lblStatus.Text = "就绪"; this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; // btnClearData this.btnClearData.BackColor = System.Drawing.Color.LightSalmon; this.btnClearData.Location = new System.Drawing.Point(410, 150); this.btnClearData.Name = "btnClearData"; this.btnClearData.Size = new System.Drawing.Size(120, 40); this.btnClearData.TabIndex = 21; this.btnClearData.Text = "清空数据"; this.btnClearData.UseVisualStyleBackColor = false; this.btnClearData.Click += new System.EventHandler(this.btnClearData_Click); // MainForm this.AutoScaleDimensions = new System.Drawing.SizeF(10F, 20F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1240, 650); this.Controls.Add(this.btnClearData); this.Controls.Add(this.lblStatus); this.Controls.Add(this.btnEndExperiment); this.Controls.Add(this.btnStartExperiment); this.Controls.Add(this.label6); this.Controls.Add(this.label5); this.Controls.Add(this.label4); this.Controls.Add(this.label3); this.Controls.Add(this.txtWeightMass); this.Controls.Add(this.txtSliderMass); this.Controls.Add(this.txtGateDistance); this.Controls.Add(this.txtLightBlockWidth); this.Controls.Add(this.label2); this.Controls.Add(this.label1); this.Controls.Add(this.chartAcceleration); this.Controls.Add(this.txtLog); this.Controls.Add(this.btnExport); this.Controls.Add(this.dgvData); this.Controls.Add(this.btnConnect); this.Controls.Add(this.cmbBaudRate); this.Controls.Add(this.cmbPorts); this.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Margin = new System.Windows.Forms.Padding(4); this.Name = "MainForm"; this.Text = "气垫导轨实验系统"; this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); ((System.ComponentModel.ISupportInitialize)(this.dgvData)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.chartAcceleration)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); } } } 3. Program.cs - 应用程序入口 C# using System; using System.Windows.Forms; namespace PhysicsExperimentMonitor { static class Program { [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new MainForm()); } } } 4. ExperimentData.cs - 数据模型(可选) C# using System; namespace PhysicsExperimentMonitor { public class ExperimentData { public int ExperimentID { get; set; } public DateTime Timestamp { get; set; } public double LightBlockWidth { get; set; } public double GateDistance { get; set; } public double TimeGate1 { get; set; } public double TimeGate2 { get; set; } public double SliderMass { get; set; } public double WeightMass { get; set; } public double Velocity1 => LightBlockWidth / TimeGate1; public double Velocity2 => LightBlockWidth / TimeGate2; public double TotalMass => SliderMass + WeightMass; public double PullForce => WeightMass * 9.8; public double Acceleration => (Velocity2 * Velocity2 - Velocity1 * Velocity1) / (2 * GateDistance); public double ExpectedAcceleration => PullForce / TotalMass; public double MCU_Velocity1 { get; set; } public double MCU_Velocity2 { get; set; } public double MCU_Acceleration { get; set; } public double ErrorPercentage => Math.Abs(Acceleration - ExpectedAcceleration) / ExpectedAcceleration * 100; } } 系统实现要点 Partial 类设计: MainForm.cs 包含业务逻辑和事件处理 MainForm.Designer.cs 包含界面布局和控件初始化 两部分通过 partial class MainForm 组合 数据流处理: 串口数据接收 → 正则表达式解析 → 数据存储 → UI 更新 参数动态设置: 每次实验前可修改挡光片宽度、光电门间距等参数 参数验证确保输入有效性 多行数据解析: 使用正则表达式处理不同格式的数据行 自动识别数据开始标记和结束标记 错误处理: 参数验证防止无效输入 异常捕获确保程序稳定性 状态指示器显示当前系统状态 请你补全代码
最新发布
11-23
String.prototype.trim = function(){return this.replace(/(^[\s]*)|([\s]*$)/g, "");}; String.prototype.lTrim = function(){return this.replace(/(^[\s]*)/g, "");}; String.prototype.rTrim = function(){return this.replace(/([\s]*$)/g, "");}; if(typeof Array.indexOf != "function") Array.prototype.indexOf = function(arg, n){ var i = isNaN(n) || n < 0 ? 0 : n; for(; i < this.length; i++) if(this[i] == arg) return i; return -1; }; var AsControl = { _getDefaultOpenStyle:function() { return "width="+screen.availWidth+"px,height="+screen.availHeight+"px,top=0,left=0,toolbar=no,scrollbars=yes,resizable=yes,status=no,menubar=no"; }, _getDefaultDialogStyle:function() { return "dialogWidth:"+screen.availWidth+"px;dialogHeight:"+screen.availHeight+"px;resizable:yes;maximize:yes;help:no;status:no;"; }, _getDialogStyle:function(sStyle) { if(typeof(sStyle)=="undefined" || sStyle=="") return this._getDefaultDialogStyle(); else return sStyle; }, _getParaString:function(sPara) { if(typeof(sPara)=="undefined" || sPara=="") { return ""; } else if (sPara.substring(0,1)=="&") { return encodeURI(encodeURI(sPara)); } else { return "&"+encodeURI(encodeURI(sPara)); } }, randomNumber:function() { return Math.abs(Math.sin(new Date().getTime())).toString().substr(2); } }; AsControl.OpenObjectTab = function(sPara){ if(sPara.indexOf("ObjectType=")<0){ alert("参数串必须有ObjectType定义!"); return; } if(sPara.indexOf("ObjectNo=")<0){ alert("参数串必须有ObjectNo定义!"); return; } /*if(sPara.indexOf("ViewID=")<0){ alert("参数串必须有ViewID定义!"); return; }*/ this.PopView("/Frame/ObjectTab.jsp", sPara); }; AsControl.OpenObject = function(sObjectType,sObjectNo,sViewID,sStyle){ return OpenObject(sObjectType,sObjectNo,sViewID,sStyle); // }; AsControl.PopObject = function(sObjectType,sObjectNo,sViewID,sDialogStyle,sDialogParas){ return PopObject(sObjectType,sObjectNo,sViewID,sDialogStyle,sDialogParas); // }; AsControl.OpenPage = function(sURL,sPara,sTargetWindow,sStyle) { if(typeof(sURL)=="undefined" || sURL=="") { alert("系统繁忙,请关掉窗口或刷新后重试!"); return false; } if(sURL.indexOf("?")>=0){ alert("URL中存在\"?\"!"); return false; } if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!"); return false; } var temp_targetWindow=""; try{ temp_targetWindow = Layout.getRegionName(sTargetWindow); sTargetWindow=temp_targetWindow; }catch(e){ } var sWindowToUnload; if(sTargetWindow==null || sTargetWindow=="_self"){ sWindowToUnload="self"; }else if(sTargetWindow=="_top"){ sWindowToUnload="top"; }else if(sTargetWindow=="_blank"){ sWindowToUnload=""; }else if(sTargetWindow=="_parent"){ sWindowToUnload="parent"; }else sWindowToUnload=sTargetWindow; try{ oWindow = eval(sWindowToUnload); }catch(e){ } if(window.checkOpenUrlModified != false){ try{ oWindow = eval(sWindowToUnload); if(!oWindow.checkModified()) return; }catch(e){ try{if(!parent.frames[sWindowToUnload].checkModified()) return;}catch(e2){} } } var sPageURL=sWebRootPath+sURL; if(sURL.indexOf("?")<0) {sPageURL = sPageURL+"?"; } else if (sURL.substr(sURL.length-1)!="?"){sPageURL = sPageURL+"&";} sPageURL = sPageURL + "CompClientID="+sCompClientID+this._getParaString(sPara)+"&randp="+this.randomNumber(); this.switchDiv(sTargetWindow); if(typeof(sStyle)=="undefined") sStyle=AsControl._getDefaultOpenStyle(); window.open(sPageURL,sTargetWindow,sStyle); }; AsControl.OpenCompNewWin = function(sURL,sPara,sStyle) { if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } var sCompPara = sPara; while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?&TargetWindow=_blank&DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara); window.open(sPageURL,"_blank",this._getDefaultOpenStyle()); }; AsControl.OpenComp = function(sURL,sPara,sTargetWindow,sStyle) { if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } sTargetWindow = Layout.getRegionName(sTargetWindow); var sToDestroyClientID=""; var sWindowToUnload = sTargetWindow; if(sTargetWindow=="_blank") { return this.PopComp(sURL,sPara); }else{ if(sTargetWindow==null || sTargetWindow=="_self") sWindowToUnload="self"; else if(sTargetWindow=="_top") sWindowToUnload="top"; try{ oWindow = eval(sWindowToUnload); sToDestroyClientID = oWindow.sCompClientID; if (sWindowToUnload !="self" && sWindowToUnload !="top" && sToDestroyClientID==sCompClientID) sToDestroyClientID = ""; }catch(e){ sToDestroyClientID = ""; } if(window.checkOpenUrlModified != false){ try{if(!oWindow.checkModified()) return;}catch(e1){ try{if(!parent.frames[sWindowToUnload].checkModified()) return;}catch(e2){} } } } if(typeof(sToDestroyClientID)=="undefined" || sToDestroyClientID=="") {sToDestroyClientID="&TargetWindow="+sTargetWindow;} else {sToDestroyClientID="&TargetWindow="+sTargetWindow+"&ToDestroyClientID="+sToDestroyClientID;} var sPageURL = sWebRootPath + "/Redirector?OpenerClientID="+sCompClientID+sToDestroyClientID+"&ComponentURL="+sURL+this._getParaString(sPara); this.switchDiv(sTargetWindow); this._OpenIFrame(sPageURL,sTargetWindow); }; AsControl._OpenIFrame = function(sPageURL,sIFrame) { if (!document.body) { window.open(sPageURL,sIFrame); return; } var a = document.createElement('a'); a.setAttribute('href', sPageURL); a.setAttribute('target',sIFrame); a.setAttribute('id', "ID_"+sIFrame); document.body.appendChild(a); a.click(); document.body.removeChild(a); } /** * 校验窗口内所有页面是否都未做修改 * @param win 被校验的窗口对象,如window、self、top或frames[name]等 * @returns {boolean} true 校验通过,false 校验不通过 */ AsControl.CheckWindowModified = function(win){ try{ if(typeof win.checkModified == "function" && !win.checkModified()) return false; } catch (e) {return true;} for(var i = 0; i < win.frames.length; i++){ if(!AsControl.CheckWindowModified(win.frames[i])) return false; } return true; }; /** * 根据iFrame的字符串名字获取iFrame对象 * @param sFrame iFrame的字符串名字 * @returns iFrame对象 */ AsControl.getOFrame = function(sFrame) { var frame = null; if(typeof sFrame !== "string") return frame; if(sFrame === "_top"){ frame = top; }else if(sFrame == self.name || sFrame === "_self"){ frame = window; }else{ var win = window; while(true){ try {frame = win.frames[sFrame];} catch(e){break;} if(frame) break; if(win.parent === win) break; win = win.parent; } } return frame; } AsControl.switchDiv = function(sTargetWindow) { if(window.showDiv==false) return; var frame = AsControl.getOFrame(sTargetWindow); if(!frame) return; try {frame.document;} catch(e){return;} var doc = frame.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("switch_page_mask"); if (switch_mask_div) { switch_mask_div.style.display="block"; return; } var sm_child_div_span = doc.createElement("span"); sm_child_div_span.style.cssText = "color:#772200;display:block;font-size:14px"; sm_child_div_span.textContent="页面切换中,请等待......"; var sm_child_count_span = doc.createElement("span"); sm_child_count_span.id = "switch_page_mask_count"; sm_child_div_span.appendChild(sm_child_count_span); var sm_child_div = doc.createElement("div"); sm_child_div.style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;background:#e8e8e8;filter:alpha(opacity=60);opacity:0.6;z-index:-1;"; var width = Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth)-20; var height = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight)-20; var sm_div = doc.createElement("div"); sm_div.id = "switch_page_mask"; sm_div.style.cssText = "position:absolute;left:0;top:0;width:"+width+"px;height:"+height+"px;text-align:center;z-index:9999;"; if(!doc || !doc.body) return; sm_div.appendChild(sm_child_div); sm_div.appendChild(sm_child_div_span); doc.body.appendChild(sm_div); } catch (e) {}; var mask_timer = setTimeout(function(){ try{ if(!frame||!doc || !doc.body) {clearTimeout(mask_timer);return;} frame.switchDivFlag=true; var mask_interval= setInterval(function(){ try{ if(!frame||!doc || !doc.body) {clearInterval(mask_interval);return;} var switch_page_mask_count = doc.getElementById("switch_page_mask_count"); if (!switch_page_mask_count) {clearInterval(mask_ierval);return;} var time = parseInt(switch_page_mask_count.textContext||switch_page_mask_count.innerText, 10); if(isNaN(time)) time = 0; switch_page_mask_count.textContent =""+ (++time); //console.log("time:"+time+"switch_page_mask_count.textContent:"+switch_page_mask_count.textContent+"switchDivFlag:"+frame.switchDivFlag); //console.trace(); if (time > 60 || !frame.switchDivFlag) {clearInterval(mask_interval);return;} }catch(e){clearInterval(mask_interval);} }, 1000); }catch(e){} }, 100); } ; AsControl.showReadyMessage = function(msg) { var top =AsDialog._getTop(); try {top.document;} catch(e){return;} var doc = top.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("page_ready_mask"); if (switch_mask_div) { switch_mask_div.style.display="block"; return; } var sm_child_div_span = doc.createElement("span"); sm_child_div_span.style.cssText = "color:#668800;display:block;font-size:14px;padding:100px"; sm_child_div_span.textContent="页面正在初始化,请稍等......"; if (msg ) sm_child_div_span.textContent=msg; var sm_child_div = doc.createElement("div"); sm_child_div.style.cssText = "position:absolute;left:0;top:0;width:100%;height:100%;background:#e8e8e8;filter:alpha(opacity=60);opacity:0.6;z-index:-1;"; var width = Math.max(doc.body.scrollWidth, doc.documentElement.scrollWidth); var height = Math.max(doc.body.scrollHeight, doc.documentElement.scrollHeight); var sm_div = doc.createElement("div"); sm_div.id = "page_ready_mask"; sm_div.style.cssText = "position:absolute;display:block;left:0;top:0;width:"+width+"px;height:"+height+"px;text-align:center;z-index:10001;"; sm_div.appendChild(sm_child_div); sm_div.appendChild(sm_child_div_span); doc.body.appendChild(sm_div); switch_mask_div = doc.getElementById("page_ready_mask"); } catch (e) {}; } ; AsControl.hideReadyMessage = function() { var top =AsDialog._getTop(); try {top.document;} catch(e){return;} var doc = top.document; if(!doc || !doc.body) return; try { var switch_mask_div = doc.getElementById("page_ready_mask"); if (switch_mask_div) { switch_mask_div.style.display="none"; return; } } catch (e) {}; } ; AsControl.PopPage = function(sURL,sPara,sStyle,dialogArgs){ if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString(sPara); if (!window.showModalDialog) {alert("本功能PopPage暂时只支持IE11!"); console.trace();return;} if (typeof(dialogArgs) == "undefined" ) dialogArgs=self; return window.showModalDialog(sPageURL,dialogArgs,sDialogStyle); }; AsControl.PopPageEx = function(sURL,sPara,oTarget,sStyle){ if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString(sPara); if (!window.showModalDialog) {alert("本功能showModalDialog暂时只支持IE11!"); console.trace();return;} return window.showModalDialog(sPageURL,oTarget,sDialogStyle); }; AsControl.PopComp = function(sURL,sPara,sStyle,dialogArgs){ if(sURL.indexOf("?")>=0) { alert("URL中存在\"?\"!"); return false; } var sDialogStyle = this._getDialogStyle(sStyle); var sCompPara = sPara; while(sCompPara.indexOf("&")>=0) sCompPara = sCompPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&OpenerClientID="+sCompClientID+"&ComponentURL="+sURL+this._getParaString("CompPara="+sCompPara); if (!window.showModalDialog) {alert("本功能PopComp暂时只支持IE11!"); console.trace();return;} if (typeof(dialogArgs) == "undefined" ) dialogArgs=self; return window.showModalDialog(sPageURL,dialogArgs,sDialogStyle); }; AsControl.OpenPageOld = function(sURL,sTargetWindow,sStyle) { if(sTargetWindow=="_blank") { alert("弹出的页面不能使用OpenPage函数!");} var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } this.OpenPage(sPageURL, sPara, sTargetWindow,sStyle); }; AsControl.PopPageOld = function(sURL,sStyle){ var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } return this.PopPage(sPageURL, sPara, sStyle); }; AsControl.OpenView = function(sURL,sPara,sTargetWindow,sStyle){ return this.OpenComp(sURL,sPara,sTargetWindow,sStyle);}; AsControl.PopView = function(sURL, sPara, sStyle, dialogArgs){ return this.PopComp(sURL, sPara, sStyle, dialogArgs);}; AsControl.DestroyComp = function (ToDestroyClientID) { $.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+ToDestroyClientID,async: false}); }; AsControl.RunJavaMethod = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName); }; AsControl.RunJavaMethodSqlca = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Sqlca"),ClassName); }; AsControl.RunJavaMethodTrans = function (ClassName,MethodName,Args) { return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,"&ArgsObject=Trans"),ClassName); }; AsControl.ExportFinanceReport = function(sObjectType, sObjectNo, sReportScope, sReportDate){ var sParam; if(arguments.length == 1) sParam = "ReportNo="+arguments[0]; else sParam = "ObjectType="+ObjectType+",ObjectNo="+sObjectNo+",ReportScope="+sReportScope+",ReportDate="+sReportDate; var sReportExcelPath = AsControl.RunJavaMethodSqlca("com.amarsoft.biz.finance.ExportExcel", "run", sParam); if(!sReportExcelPath) return; if(!frames["exportfsframe"]) $("<iframe name='exportfsframe' style='display:none;'></iframe>").appendTo("body"); window.open(sWebRootPath+"/servlet/view/file?CompClientID="+sCompClientID+"&filename="+sReportExcelPath+"&viewtype=download", "exportfsframe"); }; AsControl.CallJavaMethodJSP = function (ClassName,MethodName,Args,ArgsObjectText) { return $.ajax({ url: sWebRootPath+"/Frame/page/sys/tools/RunJavaMethod.jsp?ClassName="+ClassName+"&MethodName="+MethodName+this._getParaString("Args="+Args)+ArgsObjectText, async: false }).responseText.trim(); }; AsControl.CallJavaMethod = function (ClassName,MethodName,Args,ArgsObjectText) { return $.ajax({ type: "POST", url: sWebRootPath+"/servlet/run?1=1"+ArgsObjectText, data : { "ClassName":ClassName, "MethodName":MethodName, // FIXME 加号替换,请修改为特殊字符,见com.amarsoft.awe.control.RunJavaMethodServlet.doGet "Args":encodeURI(Args.replace(/\+/g, 'Ж').replace(/\%/g, 'ё')) }, async: false }).responseText.trim(); }; AsControl.GetJavaMethodReturn = function (sReturnText,ClassName) { /*window.onerror = function(msg, url, line) { if(msg.indexOf("AWS0003")>0||msg.indexOf("!DOCTYP")>0){ alert("运行异常:【操作超时】:可能是网络故障或您的电脑长时间未操作造成的页面超时,请重新登录!") return ; } console.trace(); alert("运行异常: " + msg + "\n"); //alert("JS异常: " + msg + "\n" + goUrlName(sWebRootPath,url) + ":" + line); return true; }; */ if (typeof(sReturnText)=='undefined' || sReturnText.length<8) { var msg="【AWES0007】后台服务调用出错!\n【"+ClassName+"】"; alert("运行异常: " + msg + "\n"); throw new Error(msg); } if(sReturnText.indexOf("AWES0003")>0 || sReturnText.indexOf("!DOCTYP")>0){ alert("运行异常:【操作超时】:可能是网络故障或您的电脑长时间未操作造成的页面超时,请重新登录!"); AsControl.OpenPage("/Frame/page/sys/SessionExpire.jsp", "", "_top", ""); return ; } var rCode = sReturnText.substring(0,8); if (rCode != '00000000') { var msg="【"+rCode+"】"+sReturnText.substring(8)+"\n【"+ClassName+"】"; alert("运行异常: " + msg + "\n"); throw new Error(msg); } sReturnText = sReturnText.substring(8); if(sReturnText.length>0 && sReturnText.substring(0,1)=="{") return eval("("+ sReturnText +")"); else{ sReturnText=this.clearString(sReturnText); return sReturnText; } }; AsControl.clearString=function(sReturnText){ try{ if(typeof(sReturnText)!="undefined"){ if(sReturnText.indexOf("系统错误")>0){ var tempText=sReturnText.split("系统错误"); sReturnText=tempText[tempText.length-1]; sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,"执行script时出错",""); sReturnText=this.replaceAll(sReturnText,"com.amarsoft.app.als.sys.function.action.BizFunctionAction",""); sReturnText=this.replaceAll(sReturnText,"执行Bizlet时出错",""); sReturnText=this.replaceAll(sReturnText,"Bizlet",""); sReturnText=this.replaceAll(sReturnText,"。",""); sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,":",""); sReturnText=this.replaceAll(sReturnText,":[",""); sReturnText=this.replaceAll(sReturnText,"]]",""); sReturnText=this.replaceAll(sReturnText,"]]",""); sReturnText=this.replaceAll(sReturnText,"[[",""); sReturnText=this.replaceAll(sReturnText,"[[",""); sReturnText=this.replaceAll(sReturnText,"FinishPutOut",""); sReturnText=this.replaceAll(sReturnText,"[]",""); sReturnText=this.replaceAll(sReturnText,"com.amarsoft.app.als.sys.function.action.BizFunctionAction",""); sReturnText=this.replaceAll(sReturnText,"执行Function错误","交易失败!"); return sReturnText; } } }catch(e){ alert(e.message); } return sReturnText; }; AsControl.replaceAll=function(sSource,sOldString,sNewString){ try{ if(typeof(sSource)!='string') return sSource; var iPosBegin = 0; sReturn = sSource; //alert(sReturn+"\r\n"+sOldString+"\r\n"+sNewString); iPosBegin = sReturn.indexOf(sOldString,iPosBegin); while(iPosBegin>=0){ //sReturn = sReturn.replace(sOldString,sNewString); sReturn = sReturn.substring(0,iPosBegin)+sNewString+sReturn.substring(iPosBegin+sOldString.length); iPosBegin = sReturn.indexOf(sOldString,iPosBegin+sNewString.length); } return sReturn; }catch(e){ alert(e.name+" "+e.number+" :"+e.message); } }; AsControl.RunJsp = function(sURL,sPara,fun) { if(sURL.indexOf("?")>=0){ alert("错误:页面URL中存在\"?\"。请将页面参数在第二个参数中传入!"); return false; } var sPageURL = sWebRootPath+sURL+"?CompClientID="+sCompClientID+this._getParaString(sPara); if(typeof fun == "function"){ return $.ajax({url:sPageURL,type:"POST",processData:false,async:true,success:fun}); }else{ return $.ajax({url:sPageURL,async:false}).responseText.trim(); } }; AsControl.RunJspOne = function(sURL) { var sPageURL=sURL; var sPara = ""; if(sURL.indexOf("?")>0) { sPageURL = sURL.substring(0,sURL.indexOf("?")); sPara = sURL.substring(sURL.indexOf("?")+1); } return this.RunJsp(sPageURL, sPara); }; AsControl.RunASMethod = function(ClassName,MethodName,Args) { return this.RunJsp("/Common/ToolsB/RunMethodAJAX.jsp","ClassName="+ClassName+"&MethodName="+MethodName+"&Args="+Args); }; AsControl.getErrMsg = function (MsgNo) { var ClassName="com.amarsoft.awe.res.ErrMsgManager"; var MethodName="getText"; var Args="MsgNo="+MsgNo; return AsControl.GetJavaMethodReturn(AsControl.CallJavaMethod(ClassName,MethodName,Args,""),ClassName); }; var OpenStyle=AsControl._getDefaultOpenStyle(); function randomNumber() { return AsControl.randomNumber();} function OpenComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);} function openComp(sCompID,sCompURL,sPara,sTargetWindow,sStyle) {return AsControl.OpenComp(sCompURL,sPara,sTargetWindow,sStyle);} function PopComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);} function popComp(sComponentID,sComponentURL,sParaString,sStyle) {return AsControl.PopComp(sComponentURL,sParaString,sStyle);} function PopPage(sURL,sTargetWindow,sStyle) {return AsControl.PopPageOld(sURL,sStyle);} function OpenPage(sURL,sTargetWindow,sStyle) {return AsControl.OpenPageOld(sURL,sTargetWindow,sStyle);} function RunJavaMethod(ClassName,MethodName,Args) {return AsControl.RunJavaMethod(ClassName,MethodName,Args);} function RunJavaMethodSqlca(ClassName,MethodName,Args) {return AsControl.RunJavaMethodSqlca(ClassName,MethodName,Args);} function RunJavaMethodTrans(ClassName,MethodName,Args) {return AsControl.RunJavaMethodTrans(ClassName,MethodName,Args);} function PopPageAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);} function RunJspAjax(sURL,sTargetWindow,sStyle){return AsControl.RunJspOne(sURL);} function RunMethod(ClassName,MethodName,Args){return AsControl.RunASMethod(ClassName,MethodName,Args); } function getMessageText(iNo) { return AsControl.getErrMsg(iNo);} function openObjectInFrame(sObjectType,sObjectNo,sViewID,sFrameID){ AsControl.OpenComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sFrameID,""); } function openObject(sObjectType,sObjectNo,sViewID,sStyle){ AsControl.PopComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sStyle); } function openObjectNewWin(sObjectType,sObjectNo,sViewID,sStyle){ AsControl.OpenCompNewWin("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sStyle); } function OpenObject(sObjectType,sObjectNo,sViewID,sStyle){ openObject(sObjectType,sObjectNo,sViewID,sStyle); } function popObject(sObjectType,sObjectNo,sViewID,sDialogStyle){ AsControl.PopComp("/Frame/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,sDialogStyle); } function PopObject(sObjectType,sObjectNo,sViewID,sDialogStyle){ popObject(sObjectType,sObjectNo,sViewID,sDialogStyle); } function setWindowTitle(sTitle) { top.document.title=sTitle+"                                                                                                                                                          "; } function setDialogTitle(sTitle) { var tempWindow = self; do{ var title=getDialogTitle(); if(typeof(title)!="undefined" && title.length>0) return ; if(typeof tempWindow.setTopTitle == "function"){ tempWindow.setTopTitle(sTitle); break; } if(tempWindow == tempWindow.parent) break; tempWindow = tempWindow.parent; }while(true); } function getDialogTitle(){ var tempWindow = self; do{ if(typeof tempWindow.getTopTitle == "function"){ return tempWindow.getTopTitle(); } if(tempWindow == tempWindow.parent) break; tempWindow = tempWindow.parent; }while(true); } var AsDialog = { OpenSelector : function(sObjectType,sParaString,sStyle){ return selectObjectValue(sObjectType,sParaString,sStyle); //使用在SELECT_CATALOG中自定义查询选择信息 }, OpenSelectorCB : function(sObjectType,sParaString,sStyle, resolve){ AsDialog.selectCatalogDialog(sObjectType,sParaString,sStyle,resolve); }, SelectGridValue : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle){ if(!sStyle) sStyle = "dialogWidth:700px;dialogHeight:500px;resizable:no;maximize:yes;help:no;status:no;"; if(sFields.indexOf("=") > -1){ return this.SetGridValue(sDoNo, sArgs, sFields, aSelected, sStyle); } var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/OpenCompDialog.jsp&OpenerClientID="+sCompClientID+"&ComponentURL=/Frame/page/tools/SelectDialog.jsp"+AsControl._getParaString("CompPara=SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti); if (!window.showModalDialog) {alert("本功能SelectGridValue暂时只支持IE11!"); console.trace();return;} return window.showModalDialog(sPageURL,aSelected,sStyle); }, SelectGridValueCB : function(sDoNo, sArgs, sFields, aSelected, isMulti, sStyle, callback){ if(!sStyle) sStyle = "dialogWidth:700px;dialogHeight:500px;resizable:no;maximize:yes;help:no;status:no;"; var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var sURL = "/Frame/page/tools/SelectDialog.jsp"; var sPara ="SelectDialogUrl=/Frame/page/tools/SelectGridDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&Fields="+sFields+"&IsMulti="+isMulti+"&ASelected="+sSelected; this.PopView(sURL,sPara,sStyle,callback); }, SetGridValue : function(sDoNo, sArgs, sFieldValues, aSelected, sStyle){ if(sFieldValues.indexOf("=") < 0){ return this.SelectGridValue(sDoNo, sArgs, sFieldValues, aSelected, false, sStyle); } var fieldValues = sFieldValues.split("@"); var fields = ""; var terminis = new Array(); var keyValue; for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } var sReturn = this.SelectGridValue(sDoNo, sArgs, fields, aSelected, false); if(!sReturn) return; if(sReturn == "_CLEAR_"){ if(typeof setItemValue == "function" && typeof getRow == "function"){ for(var i = 0; i < terminis.length; i++){ setItemValue(0, getRow(), terminis[i], ""); } } }else{ if(typeof setItemValue == "function" && typeof getRow == "function"){ var values = sReturn.split("@"); for(var i = 0; i < terminis.length; i++){ setItemValue(0, getRow(), terminis[i], values[i]); } } } return sReturn; }, SetGridValueCB : function(sDoNo, sArgs, sFieldValues, aSelected, sStyle,callback){ if(sFieldValues.indexOf("=") < 0){ return this.SelectGridValueCB(sDoNo, sArgs, sFieldValues, aSelected, false, sStyle,callback); } var fieldValues = sFieldValues.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectGridValueCB(sDoNo, sArgs, fields, aSelected, false, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,false); if (jQuery.isFunction(callback)) {callback(sObjectNoString);} }); }, _getTop:function() { var mytop=window; var exttest=false; try{ !top.contentDocument; mytop = top; if (mytop.location.host != window.location.host) {exttest=true;} }catch(er){exttest=true;} if (exttest) { var mywin=window; mytop = window; while(true){ try { mytop = mytop.parent; if (mytop.location.host != window.location.host) {mytop = mywin; break;} !mytop.contentDocument; mywin = mytop; }catch(er){mytop = mywin; break;} } } if (!mytop.dialog) { AsDialog.InitDialog(mytop); } return mytop; }, InitDialog : function(mytop){ if (typeof(mytop.$)!="undefined") { mytop.$("head").append('<script type="text/javascript" charset="UTF-8" src="'+sWebRootPath+'/Frame/resources/js/dialog/dialog-min.js"></script>'); mytop.$("head").append('<link rel="stylesheet" type="text/css" href="'+sWebRootPath+'/Frame/page/resources/css/dialog.css">'); } }, _PopupPage : function(pageinfo,callback){ if (!$.isPlainObject(pageinfo)) {alert("Arguments is not fit!");return;} var sURL=pageinfo.url; var sPageURL = sWebRootPath + "/RedirectorDialog?DiaglogURL="+sURL+"&OpenerClientID="+sCompClientID+"&TargetWindow=Popup&ComponentURL="+sURL+AsControl._getParaString(pageinfo.para); var top =AsDialog._getTop(); var maxWidth=top.document.body.offsetWidth-2; var maxHeight=top.document.body.offsetHeight-2; if (pageinfo.width >maxWidth) pageinfo.width=maxWidth; if (pageinfo.height >maxHeight) pageinfo.height=maxHeight; var d = top.dialog({ width:pageinfo.width, height:pageinfo.height, cancel: function() { if(window.checkOpenUrlModified != false){ try{if(!AsControl.CheckWindowModified(top)) return false;}catch(e1){ } } }, cancelDisplay:false, resize:true, url:sPageURL }); if (pageinfo.title) d.title(pageinfo.title); d.addEventListener('close', function () { var sReturnValue=this.returnValue; //jQuery.ajax({url: sWebRootPath+"/Frame/page/control/DestroyCompAction.jsp?ToDestroyClientID="+sCompClientID+"&TargetWindow=Popup",async: false}); var did = this.id; this.remove(); var dels=top.document.getElementsByName(did); if (dels.length >0) { dels[0].parentNode.removeChild(dels[0]); } if (jQuery.isFunction(callback)) { setTimeout(function(){callback(sReturnValue);}); } else { alert("You Selected is \n\r["+sReturnValue+"]\n\rPlease set callback Function to handled!"); } }); d.returnValue=undefined; d.showModal(); }, /** * 通用的选择器,内嵌的SelectDialogUrl页面需实现doSure()方法,并将返回值以parent.closeDialog(返回值);的形式返回给选择器 * @param dialoginfo * @param callback */ SelectCommonDialog : function(dialoginfo,callback){ if (!jQuery.isFunctionPlainObject(dialoginfo)) {alert("Arguments is not fit!");return;} var pageinfo = { width: dialoginfo.width, height:dialoginfo.height, title: dialoginfo.title, para: dialoginfo.para.indexOf("SelectDialogUrl")<0 ? "SelectDialogUrl="+dialoginfo.para : dialoginfo.para, url:"/Frame/page/tools/dialog/SelectDialog.jsp" }; this._PopupPage(pageinfo,callback); }, selectCatalogDialog:function(sObjectType,sParaString,sStyle,callback){ var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,540), url:"/Frame/DialogSelect.jsp", para:"SelName="+sObjectType+"&ParaString="+sParaString, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, selectObjectInfo:function(sObjectType,sParaString,sStyle,callback){ var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,540), url:"/Frame/page/tools/dialog/SelectObject.jsp", para:"ObjectType="+sObjectType+"&ParaString="+sParaString, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, setObjectInfo:function(sObjectType,sValueString,iArgDW,iArgRow,sStyle,callback){ if(typeof(sStyle)=="undefined" || sStyle=="") sStyle = "dialogWidth:700px;dialogHeight:540px;"; if (jQuery.isFunction(sStyle)) {callback=sStyle; sStyle = "dialogWidth:700px;dialogHeight:540px;"} var iDW = iArgDW; if(iDW == null) iDW=0; var iRow = iArgRow; if(iRow == null) iRow=0; var sValues = sValueString.split("@"); var sParaString = sValues[0]; var i=sValues.length; i=i-1; if (i%2!=0){ alert("setObjectInfo()返回参数设定有误!\r\n格式为:@ID列名@ID在返回串中的位置..."); return; }else{ var j=i/2,m,sColumn,iID; this.selectObjectInfo(sObjectType,sParaString,sStyle,function(sObjectNoString){ if(typeof(sObjectNoString)=="undefined" || sObjectNoString=="null" || sObjectNoString==null || sObjectNoString=="_CANCEL_"){ return; }else if(sObjectNoString=="_CLEAR_"){ for(m=1;m<=j;m++){ sColumn = sValues[2*m-1]; if(sColumn!="") setItemValue(iDW,iRow,sColumn,""); } }else if(sObjectNoString!="_NONE_" && sObjectNoString!="undefined"){ sObjectNos = sObjectNoString.split("@"); for(m=1;m<=j;m++){ sColumn = sValues[2*m-1]; iID = parseInt(sValues[2*m],10); if(sColumn!="") setItemValue(iDW,iRow,sColumn,sObjectNos[iID]); } if (jQuery.isFunction(callback)) {callback(sObjectNoString); } return sObjectNoString; }else{ //alert("选取对象编号失败!对象类型:"+sObjectType); return; } return sObjectNoString; } ); } }, /**主要是使用在select_catalog中自定义查询选择信息 * sObjectType:对象类型 * sValueString格式: 传入参数 @ ID列名 @ ID在返回串中的位置 @ Name列名 @ Name在返回串中的位置 * iArgDW: 第几个DW,默认为0 * iArgRow: 第几行,默认为0 */ setObjectValue:function(sObjectType,sParaString,sValueString,iArgDW,iArgRow,sStyle,callback){ var i=sValueString.split("@").length-1; if (i%2!=0){ alert("setObjectValue()返回参数设定有误!\r\n格式为:@ID列名@ID在返回串中的位置..."); return; }else{ this.selectCatalogDialog(sObjectType,sParaString,sStyle,function(sObjectNoString){ var i=sValueString.split("@").length-1; var sValues = sValueString.split("@"); var iDW = iArgDW; if(isNaN(iDW)) iDW=0; var iRow = iArgRow; if(isNaN(iRow)) iRow=0; var j=i/2,m,sColumn,iID; if(typeof(sObjectNoString)=="undefined" || sObjectNoString=="null" || sObjectNoString==null || sObjectNoString=="_CANCEL_" ){ return; }else if(sObjectNoString=="_CLEAR_"){ for(var m=1;m<=j;m++){ sColumn = sValues[2*m-1]; if(sColumn!="") setItemValue(iDW,iRow,sColumn,""); } }else if(sObjectNoString!="_NONE_" && sObjectNoString!="undefined"){ var sObjectNos = sObjectNoString.split("@"); for(var m=1;m<=j;m++){ sColumn = sValues[2*m-1]; iID = parseInt(sValues[2*m],10); if(sColumn!="") setItemValue(iDW,iRow,sColumn,sObjectNos[iID]); } if (jQuery.isFunction(callback)) {callback(sObjectNoString); } return sObjectNoString; }else{ return; } }); } }, /** * 弹出配置树图选择器,并返回选择内容字符串 * @param sCodeNo 配置树图编号 必须 * @param sReturnFields 返回字段,以@符号分隔 必须 * * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * * @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN * @belong AsDialog */ SelectConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle,callback){ if(sReturnFields.indexOf("=") > -1){ return this.SetConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle); } var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,500), url:"/Frame/page/tools/dialog/SelectDialog.jsp", para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectCodeTreeDialog.jsp&CodeNo="+sCodeNo+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, /** * 弹出配置树图选择器,并以选择内容字符串给对应字段赋值 * @param sCodeNo 配置树图编号 必须 * @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器字段) * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * @belong AsDialog */ SetConfigTreeValue : function(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle){ if(sReturnFields.indexOf("=") < 0){ return this.SelectConfigTreeValue(sCodeNo, sReturnFields, aSelected, isMulti, onlyLeaf, sStyle); } var fieldValues = sReturnFields.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectConfigTreeValue(sCodeNo, fields, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,isMulti); }); }, /** * 弹出树图选择器,并返回选择内容字符串 * @param sDoNo 预定义显示模型编号 必须 * @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔 * @param sReturnFields 返回字段,以@符号分隔 必须 * @param sSortField 节点排序字段 必须 * @param sTextField 节点显示字段 必须 * * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * * @returns 选择器返回的字符串 单选:F1V@F2V@...@FNV 多选:F1V1@F2V1@...@FNV1~F1V2@F2V2@...@FNV2~F1VN@F2VN@...@FNVN * @belong AsDialog */ SelectTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle,callback){ var sSelected = aSelected; if ($.isArray(aSelected)) {sSelected = aSelected.join("@");} var pageinfo = { width:this._getStyleDialogWidth(sStyle,700), height:this._getStyleDialogHeight(sStyle,500), url:"/Frame/page/tools/dialog/SelectDialog.jsp", para:"SelectDialogUrl=/Frame/page/tools/dialog/SelectTreeDialog.jsp&DoNo="+sDoNo+"&Parameters="+sArgs+"&SortField="+sSortField+"&TextField="+sTextField+"&ReturnFields="+sReturnFields+"&IsMulti="+isMulti+"&OnlyLeaf="+onlyLeaf+"&ASelected="+sSelected, title: '请选择:' }; this._PopupPage(pageinfo,callback); }, /** * 弹出树图选择器,以选择内容字符串给对应字段赋值 * @param sDoNo 预定义显示模型编号 必须 * @param sArgs 预定义显示模型参数,规则同OW页面,以“,”分隔 * @param sReturnFields 返回并设置字段,FK1=FV1@FK2=FV2@...@FKN=FVN (当前显示模板字段=选择器显示模板字段) * @param sSortField 节点排序字段 必须 * @param sTextField 节点显示字段 必须 * @param aSelected {Array} 默认选择数据 字段对应的值 ["F1V1,F1V2,...,F1VN","F2V1,F2V2,...,F2VN",...,"FNV1,FNV2,...,F1VN"] * @param isMulti 选择器树图多选标记,true 多选,否则 单选 * @param onlyLeaf 选择器树图只选功能节点 false 可选文件夹节点 否则 只能选末端叶子节点 * @param sStyle 选择器窗体外观特征,默认宽度为700像素,高度为500像素,不能自由拉伸窗体,不显示状态栏、帮助问号 * @belong AsDialog */ SetTreeValue : function(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle){ if(sReturnFields.indexOf("=") < 0){ return this.SelectTreeValue(sDoNo, sArgs, sReturnFields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle); } var fieldValues = sReturnFields.split("@"); var terminis = new Array(); // 接收字段 var fields = ""; // 返回字段 for(var i = 0; i < fieldValues.length; i++){ if(fieldValues[i].indexOf("=") < 0) continue; var keyValue = fieldValues[i].split("="); if(keyValue.length < 2 || keyValue[0] == "" || keyValue[1] == "") continue; terminis[terminis.length] = keyValue[0]; if(fields != "") fields += "@"; fields += keyValue[1]; } this.SelectTreeValue(sDoNo, sArgs, fields, sSortField, sTextField, aSelected, isMulti, onlyLeaf, sStyle, function(sObjectNoString){ AsDialog._setItemValues(terminis,sObjectNoString,isMulti); }); }, PopPage : function(sURL,sPara,objectStyle,callback){ var width = 700; var height = 500; var title = "&nbsp"; if ($.isPlainObject(objectStyle)) { if (objectStyle.width) width = objectStyle.width; if (objectStyle.height) height = objectStyle.height; title = objectStyle.title; } else if (typeof objectStyle=="string") { width = this._getStyleDialogWidth(objectStyle,width); height = this._getStyleDialogHeight(objectStyle,height); } var pageinfo = { width:width, height:height, title:title, url:sURL, para:sPara }; this._PopupPage(pageinfo,callback); }, OpenObject:function(sObjectType,sObjectNo,sViewID,objectStyle,callback){ if (!objectStyle) objectStyle =$.parseJSON(RunJspAjax("/Frame/page/tools/object/GetObjectInfo.jsp?ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID)); this.PopView("/Frame/page/tools/object/ObjectViewer.jsp","ObjectType="+sObjectType+"&ObjectNo="+sObjectNo+"&ViewID="+sViewID,objectStyle,callback); }, PopView : function(sURL,sPara,objectStyle,callback){ var top =AsDialog._getTop(); var width = top.document.body.offsetWidth-2; var height = top.document.body.offsetHeight-2; var title = ""; if ($.isPlainObject(objectStyle)) { if (objectStyle.width) width = objectStyle.width; if (objectStyle.height) height = objectStyle.height; title = objectStyle.title; } else if (typeof objectStyle=="string") { width = this._getStyleDialogWidth(objectStyle,width); height = this._getStyleDialogHeight(objectStyle,height); } var maxWidth=top.document.body.offsetWidth-2; var maxHeight=top.document.body.offsetHeight-2; if (width >maxWidth) width=maxWidth; if (height >maxHeight) height=maxHeight; var initMax=0; if(width==maxWidth&&height==maxHeight) { initMax=1; } var sDialogPara = sPara; while(sDialogPara.indexOf("&")>=0) sDialogPara = sDialogPara.replace("&","$[and]"); var sPageURL = sWebRootPath+"/RedirectorDialog?DiaglogURL=/Frame/page/control/DialogFrame.jsp&OpenerClientID="+sCompClientID+AsControl._getParaString("&DialogTitle="+title)+"&DialogURL="+sURL+AsControl._getParaString("DialogPara="+sDialogPara); if(initMax==0){ var d = top.dialog({ width:width, height:height, cancelDisplay:false, //title:"<span style=\"\color:red\"\>点击此处拖动弹窗</span>", title:"<span class=\"\btn_text\"\>点击此处拖动弹窗</span>", drag:true, fixed:true, url:sPageURL }); }else{ var d = top.dialog({ width:width*0.8, height:height*0.8, cancelDisplay:false, drag:true, fixed:true, url:sPageURL }); } d.addEventListener('close', function () { var sReturnValue=this.returnValue; var did = this.id; this.remove(); var dels=top.document.getElementsByName(did); if (dels.length >0) { dels[0].parentNode.removeChild(dels[0]); } if (jQuery.isFunction(callback)) { setTimeout(function(){callback(sReturnValue);}); } }); d.returnValue=undefined; d.showModal(); }, SetDialogTitle : function(sTitle){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent(); if (d) d.title(sTitle); }, ClosePage : function(sReturnValue){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent();if (!d && top.dialog.list){for (var i in top.dialog.list) {d=top.dialog.list[i];}} if (d) { if (jQuery.isFunction(top.hideButtonTips)){top.hideButtonTips();} d.close(sReturnValue) ; } else { try { if(typeof(top.sObjectInfo)!="undefined" && typeof top.closeAndReturn == "function") { top.sObjectInfo = sReturnValue; top.closeAndReturn(); return; } else if (typeof top.dialogArguments !='undefined' && top==self){ if (typeof(sReturnValue)!="undefined") { top.returnValue=sReturnValue; } top.close(); return; } }catch (e) {alert("e"+e);} } }, RefreshMe : function(){ var top =AsDialog._getTop(); var d = top.dialog.getCurrent();if (!d && top.dialog.list){for (var i in top.dialog.list) {d=top.dialog.list[i];}} if (d) { if (d.iframeNode && d.iframeNode.contentWindow && d.iframeNode.contentWindow.refreshMe) { d.iframeNode.contentWindow.refreshMe(); } } else { try { if(typeof top.refreshMe == "function") { top.refreshMe(); return; } }catch (e) {alert("e"+e);} } }, ResizeDialog : function(){ var top =AsDialog._getTop(); var width = top.document.body.offsetWidth-2; var height = top.document.body.offsetHeight-2; var d = top.dialog.getCurrent(); d.width(width+"px"); d.height(height+"px"); }, _getStyleDialogWidth : function(sStyle, sDefaultValue){ if (!sDefaultValue ) sDefaultValue = 640; if (!sStyle) return sDefaultValue; var aMatch=sStyle.match(/dialogWidth[\s]*[:=][\s]*([\d]+)px/i); if (aMatch) return parseInt(aMatch[1]); aMatch=sStyle.match(/dialogWidth[\s]*[:=][\s]*([\d]+);/i); if (aMatch) return parseInt(aMatch[1]*16); else return sDefaultValue; }, _getStyleDialogHeight : function(sStyle, sDefaultValue){ if (!sDefaultValue ) sDefaultValue = 480; if (!sStyle) return sDefaultValue; var aMatch=sStyle.match(/dialogHeight[\s]*[:=][\s]*([\d]+)px/i); if (aMatch) return parseInt(aMatch[1]); aMatch=sStyle.match(/dialogHeight[\s]*[:=][\s]*([\d]+);/i); if (aMatch) return parseInt(aMatch[1]*16); else return sDefaultValue; }, _setItemValues : function(aField, sValues, isMulti){ if(typeof setItemValue != "function" && typeof getRow != "function") return; if(!sValues) return; if(sValues == "_CLEAR_"){ for(var i = 0; i < aField.length; i++){ setItemValue(0, getRow(), aField[i], ""); } return; }else{ if(typeof setItemValue == "function" && typeof getRow == "function"){ if(isMulti){ var aReturn = sValues.split("~"); var aValues = new Array(); for(var i = 0; i < aReturn.length; i++){ var vs = aReturn[i].split("@"); for(var j = 0; j < aField.length; j++){ if(i == 0) aValues[j] = ""; else aValues[j] += ","; aValues[j] += vs[j]; if(i == aReturn.length - 1) setItemValue(0, getRow(0), aField[j], aValues[j]); } } }else{ var aValues = sValues.split("@"); for(var i = 0; i < aField.length; i++){ setItemValue(0, getRow(), aField[i], aValues[i]); } } } } }, OpenCalender : function(obj,strFormat,startDate,endDate,postEvent,x,y){ if(typeof obj == "string") obj = document.getElementById(obj); if(!obj) return; var today = new Date();//.format(strFormat); //alert([getDate(startDate),getDate(endDate)]); SelectDate(obj,strFormat,getDate(startDate),getDate(endDate),postEvent,x,y); function getDate(sDate){ if(typeof sDate == "string" && sDate.toUpperCase() == "TODAY") return today; if(typeof sDate == "number"){ return new Date(today.getFullYear(), today.getMonth(), today.getDate()+parseInt(sDate, 10)); } return sDate; } } }; if(window == AsDialog._getTop()){ if (typeof($)!="undefined" && typeof(dialog)=="undefined") { $("head").append('<script type="text/javascript" charset="UTF-8" src="'+sWebRootPath+'/Frame/resources/js/dialog/dialog-min.js"></script>'); $("head").append('<link rel="stylesheet" type="text/css" href="'+sWebRootPath+'/Frame/page/resources/css/dialog.css">'); } } if(navigator.appName!="Microsoft Internet Explorer") { if (top && AsDialog) { AsDialog.srctop=top; AsDialog.mytop=AsDialog._getTop(); window.top = AsDialog.mytop; if (window == AsDialog.mytop) { window.parent=AsDialog.mytop}; } } if(navigator.appName!="Microsoft Internet Explorer") { if (Date.prototype.getFullYear) Date.prototype.getYear=Date.prototype.getFullYear; $(document).ready(function() { if (typeof(document.getElementByIdSrc)=="undefined") { document.getElementByIdSrc = document.getElementById; document.getElementById = function (idName) { var obj; try { obj = document.getElementByIdSrc(idName); } catch (e){} if (!obj) { obj = document.getElementsByName(idName)[0]; } return obj; } } }); } 请分析这段代码,然后如何在title里面加入缩放和扩大的按钮
06-08
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值