<iframe src="http://www.baidu.com">
<input type="text" id="search" />
<input type="button" id="baiduyixia" value="百度一下" />希望达到的效果 在 search 这个文本框中输入字符的同时 iframe 中的网页(baidu) 中的的文本框中的内容也会随着变化
输入完成后 点击 baiduyixia 这个按钮,相当于点击 iframe 中的 百度一下 的按钮,最后 iframe 中显示结果所有的操作都需要在我的页面中操作,操作我的页面中的控件相当于操作 iframe 中 百度 页面中的控件。只要达到效果就可以,可以不使用js,只要是我能看懂就OK!只要是提供给我思路可以让我做出来的,绝对给分!如果不方便回答的,可以QQ上给我留言53030734,希望大家可以帮帮我。
<input type="text" id="search" />
<input type="button" id="baiduyixia" value="百度一下" />希望达到的效果 在 search 这个文本框中输入字符的同时 iframe 中的网页(baidu) 中的的文本框中的内容也会随着变化
输入完成后 点击 baiduyixia 这个按钮,相当于点击 iframe 中的 百度一下 的按钮,最后 iframe 中显示结果所有的操作都需要在我的页面中操作,操作我的页面中的控件相当于操作 iframe 中 百度 页面中的控件。只要达到效果就可以,可以不使用js,只要是我能看懂就OK!只要是提供给我思路可以让我做出来的,绝对给分!如果不方便回答的,可以QQ上给我留言53030734,希望大家可以帮帮我。
解决方案 »
- asp.net导出excel打印
- 奇怪,奇怪,大家有没有类似的问题?
- 关于在.shtml文件中include .aspx页面问题?
- 如何让Repeater分页的时候 不是一行显示一条数据 ~朋友们请进....
- 急问如何修改web服务器使之运行asp.net1.1
- 发一个分页存储过程,大家看看那些地方应该再改改。。
- 如何在控制流程时改变字体颜色?谢谢
- 如何在局域网上联机运行WEB应用程序?
- @_@ 在留言薄设计中,如果用HtmlInputRadio如何将表情图片提交到数据库?帮帮我吧不是罪
- 很奇怪的问题
- 点击确定为什么得不到到DropDownList2的值?
- 错误:'AjaxcontrolToolkit'未定义 急等.....
网上有个js脚本注入的,我看不明白,希望高手可以指点一下。比较着急,先谢谢回帖的大哥大姐们了!
参考
由于现在跟其他站点合作,遇到跨域问题,在JQuery中的$.get有一个彩蛋可以使用
服务器A(192.168.0.102):test.jsp
1<%@ page contentType="text/html; charset=GBK" %>
2<%request.setCharacterEncoding("GBK");%>
3var cardNames = new Array('hh', 'unser');
4var cardMails = new Array('[email protected]', '[email protected]');服务器B(192.168.0.101):test.htm
1<HTML>
2<HEAD>
3<script language="JavaScript" src="/common/js/jquery-1.2.1.pack.js"></script>
4
5</HEAD>
6<BODY>
7<SCRIPT>
8$.get("http://192.168.0.102/test.jsp",
9 { names: "c" },
10 function(data){
11 alert("Data Loaded: " + cardNames);
12
13 for (i=0;i<cardNames.length;i++)
14 {
15 alert(cardNames[i]);
16 }
17 },
18 "script"
19);
20</SCRIPT>
21</BODY>
22</HTML>
-------------------------------------------------------------------------------------------------------------------------------ajax应用的越来越广泛。以前我一直使用jquery的.post,和.get来做
ajax操作,很方便。但是.post和.get是不支持跨域操作的,例如:
在a.com通过他们调用b.com,会返回uri denied。今天要实现一个feature
要ajax跨域操作,就研究了一下。
jquery从1.2开始,.getJSON就支持跨域操作了。这个是官方给出的例子。
http://docs.jquery.com/Ajax/jQuery.getJSON#urldatacallback
$.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?
tags=cat&tagmode=any&format=json&jsoncallback=?",
function(data){
$.each(data.items, function(i,item){
$("<img/>").attr("src", item.media.m).appendTo("#images");
if ( i == 3 ) return false;
});
});
这里的jsoncallback是一个jsonp的callback。不指定就是用?,jquery会自动
把?替代。这个大家可能还不太理解,一会就明白了。
我用django做web开发的framework。那么提供json数据的view func应该如何写呢?
def api(request, id):
try:
info = Info.objects.get(id=id)
data = {
'name':info.name,
'gendar':info.gendar,
}
except:
status = {}
callback = request.GET['callback']
return HttpResponse('%s(%s)' % (callback,
simplejson.dumps(status)))
这里的callback就是一个jsonp的func名字,通常是jsonp1214803701549这样的串。
HttpResponse的返回值一定是jsonp1214803701549({'name':xxx, 'gendar':xxxx})。
因为这样才能回调到你的客户端的function。这个浪费了我不少时间。
html客户端代码就更简单。
$.getJSON("http://xxx.com?callback=?",
function(data){
alert(data.name);
}
});
到此,ajax的跨域操作就完成了。网上关于这方面的资料不多,而且都不详细。上面是我用firebug跟踪HttpResponse,HttpRequest的参数的总结的。可能有理解不当,或者有更好的方法,欢迎大家一起交流 -------------------------------------------------------------------------------------------------------------------------------------------- 基于jquery的ajax之跨域解决方案今天突然发现原来ajax无法跨域,网上主流的解决方法兜了一圈都十分的无爱,apache rewrite即使我自己的apache能够实现也无法保证以后提供商给你这么好的服务,iframe法:多出来一个这么大个东东总不是滋味。代理:速度受到影响还看到包括modello,squid等办法,个人推荐modello的办法,通过google可以搜到相关教程,使用起来非常方便,经本人测试支持ie6,ie7,firefox,不过有一个缺点就是速度慢了半拍,执行geturl以后要等10s左右才给反映,有可能是提取的页面大了的原因,具体也没有进一步的测试,最后自己决定自己给自己写一个中转页面 例子是一个从九天网播放页动态提取mp3地址进行播放,当按下按钮,通过jquery的ajax传递一个播放页面url地址给后台test.php ,后台返回页面的内容串给js,然后正则加工提取地址交给前台播放器,加工部分当然也可以在后台页交给php完成(当然这不是本文重点)。
JQuery 这个我从来没有了解及使用过,希望可以针对我贴出的代码,是一个小小的示例,由于对技术的不了解,我自主钻研很耗时啊。
这个跨域的情况: iframe 外面的页面是我开发的,iframe 中指向的页面是别人的。
网上有很多方法,但都需要两个页面的开发者为一个人希望高手们可以指点一下,我星期六才能回去,应该星期六了才能详细了解大家提供的方案。
郑重声明:绝对结贴!
你这个问题根本没有涉及跨域<iframe id="frm1" src="http://www.baidu.com">
<input type="text" id="search" />
<input type="button" id="baiduyixia" value="百度一下" onclick="frm1.src='http://www.baidu.com/s?wd='+escape(search.value);" />
最近也有修改其他域的DOM的问题, 关注中...
不能通过数据提交的方法。我已经说过了。onclick必须="function"
思路,
比如说,它是在点按钮之后才查出来数据的,也就是说在没点的时候只要能上下文本框同步字符就行
那就在百的上面一部分也就是输入文本框用一个div盖上,div里放一个输入框
这样就好控制了,
当点按钮的时候就用提交的方法就可以了,
我想这种方法虽说是假的,不过可实现你说的功能,我之前也用这种方法做过一个天气预报就是取到一个网站的一部分然后用div
把其它的部分盖上不显示,道理是一样的
是要跨顶级域操作DOM..
想要直接修改baidu的页面, bd是铁定不会授权给你了 -- 你又无法通过修改domain来欺骗它.
/跨域获取
// Converts a IHTMLWindow2 object to a IWebBrowser2. Returns NULL in case of failure.
CComQIPtr<IWebBrowser2> HtmlWindowToHtmlWebBrowser(CComQIPtr<IHTMLWindow2> spWindow)
{
ATLASSERT(spWindow != NULL); CComQIPtr<IServiceProvider> spServiceProvider = spWindow;
if (spServiceProvider == NULL)
{
return CComQIPtr<IWebBrowser2>();
} CComQIPtr<IWebBrowser2> spWebBrws;
HRESULT hRes = spServiceProvider->QueryService(IID_IWebBrowserApp, IID_IWebBrowser2, (void**)&spWebBrws);
if (hRes != S_OK)
{
return CComQIPtr<IWebBrowser2>();
} return spWebBrws;
}// Converts a IHTMLWindow2 object to a IHTMLDocument2. Returns NULL in case of failure.
// It takes into account accessing the DOM across frames loaded from different domains.
CComQIPtr<IHTMLDocument2> HtmlWindowToHtmlDocument(CComQIPtr<IHTMLWindow2> spWindow)
{
ATLASSERT(spWindow != NULL); CComQIPtr<IHTMLDocument2> spDocument;
HRESULT hRes = spWindow->get_document(&spDocument); if ((S_OK == hRes) && (spDocument != NULL))
{
return spDocument;
} CComQIPtr<IWebBrowser2> spBrws = HtmlWindowToHtmlWebBrowser(spWindow);
if (spBrws == NULL)
{
return CComQIPtr<IHTMLDocument2>();
} // Get the document object from the IWebBrowser2 object.
CComQIPtr<IDispatch> spDisp;
hRes = spBrws->get_Document(&spDisp);
spDocument = spDisp; return spDocument;
}
//跨域获取
下面是一段C++的跨域代码。
2Unsafe JavaScript attempt to access frame with URL http://www.baidu.com/ from frame with URL file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Downloads/ajaxfileupload1.0/teset.html. Domains, protocols and ports must match.
总之 跨域就有安全问题,跨域操作应该获取别人的授权才能进行,否则只有用脚本注入攻击(xxs),这就属于黑客技术了,如果你只是想做正常的应用,这个好像也不太合适。
放弃吧-。-当浏览器解决了跨域安全问题以后你的应用就可以开始做了。。