从网页预填充网页
Pre-fill a web page from a web page
我们在Windows应用程序中有一个功能,可以打开web浏览器,导航到某些预先配置的网站,并用数据库中的数据自动填充表单——这对用户来说是一个方便的功能。
现在,我们想构建这个功能的Asp.Net版本,这样用户就可以从我们的web应用程序中单击链接/按钮,然后我们打开页面(使用JavaScript重定向?)。然后我们填写表格,以便用户可以查看数据并提交。
要做到这一点,我认为我们要么需要将javascript注入加载外部窗口的浏览器框架,要么需要能够与该窗口交互。
我们担心浏览器安全可能不允许这样做——这可能看起来像某种欺骗攻击。这样做的好方法是什么?
如果打开弹出窗口的网站和在弹出窗口中打开的网站之间的域、协议和端口不匹配,则您的代码将违反同源策略,要么被静默忽略,要么引发异常。
下面是一个示例:
<!doctype html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<script type="text/javascript">
openPopUp = function(href) {
var props = "width=500,height=500,menubar=no,toolbar=no,scrollbars=yes";
var win = window.open(href, href, props);
if (win == null) alert("Your popup blocker is ruining my demo.");
return win;
};
openMe = function(url){
href = (url=="")?document.location:url;
pu = openPopUp(href);
//This will be ignored silently if Same Origin Policy is violated
pu.onload = function() {
p = pu.document.createElement("p");
p.appendChild(pu.document.createTextNode("onload was here."));
pu.document.body.appendChild(p);
};
//This will throw an exception if Same Origin Policy is violated
setTimeout(function() {
p = pu.document.createElement("p");
p.appendChild(pu.document.createTextNode("setTimeout was here."));
pu.document.body.appendChild(p);
},3000);
return false;
}
</script>
<body>
<a href="" onclick="return openMe(this.href);">Self</a>
<a href="https://www.google.com/" onclick="return openMe(this.href);">Google</a>
您需要制作一个bookmarklet。在你的asp.net页面上,创建一个链接,用户可以拖动该链接到他的浏览器书签。用户单击指向要填写的页面的链接。然后他点击新创建的小书签。
在纯javascript中,这是不可能的,这就是为什么您需要使用bookmarklet。
场景:您有两个页面base.aspx和popup.aspx。单击base.aspx上的链接,您将打开popup.aspx,其中包含所需的数据。您同时控制base.aspx和popup.aspx
我认为你可以通过以下几种方式实现
- 如果您在popup.aspx上想要的数据已经加载在base.aspx上。然后在querystring中发送此数据(如果不太长)
- 如果您想要的popup.aspx上的数据已经加载到base.aspx上。请使用popup.aspx中的window.opener从base.aspx中读取表单字段。注意:只有当基本和弹出窗口都在同一域中时,window.openner才会起作用
- 在popup.aspx URL中发送标识符字符串(http:///popup.aspx?actiodId=1234QWE6789),现在位于popup.aspx的page_load中,从activId上的DB查询中获取数据
做您正在尝试做的事情的最好方法是创建一个浏览器插件。请尝试在此处查找更多信息。但是使用浏览器插件,您可以完全控制DOM,并且可以注入javascript代码来执行您正在执行的操作。如果需要,您甚至可以从插件中调用web服务。
- 如何设置html元素填充的动画
- 如何使用jquery在填充自动完成的值后使文本框只读
- 如何通过ajax刷新JSF填充的javascript变量
- 如何让iframe在设置负上边距后填充整个移动网页
- 从网页预填充网页
- 用Instagram提要填充网页并调整大小
- 有没有办法让我用另一个网站的图片自动填充我的网页
- 使用 PHP/JS 使用上传的文件动态填充网页
- 用于在网页上填充图像链接的 JavaScript 代码
- 我如何用图片填充我的网页
- 使用 AJAX 从两页上的数据填充网页
- CSS3-用不同大小的可变数量的矩形填充网页的最短方法
- 从网页获取内容,这是通过javascript填充
- 使用Javascript自动填充网页用户名密码
- 通过URL预填充网页字段
- 如何使用jquery获取数据并动态填充网页
- Dojo:在网页中填充本地json文件的树状结构
- 自动填充文本框和模拟按钮点击网页
- 如何停止在html网页中动态更改正文的填充
- 从Google电子表格数据在网页上构建/填充下拉菜单