jquery-ui - JqueryUI: 打开对话框的链接

  显示原文与译文双语对照的内容
0 0

我有一个代码,应该在点击链接时创建一个带有google页面的对话框:

<?php use_javascript('/sfJqueryReloadedPlugin/js/jquery-1.3.2.min.js')?>
<?php use_javascript('/sfJqueryReloadedPlugin/js/plugins/jquery-ui-1.7.2.custom.min')?>
<?php use_stylesheet('/sfJqueryReloadedPlugin/css/ui-lightness/jquery-ui-1.7.2.custom.css')?>
<script type="text/javascript">
 $(function (){
 $('a.ajax').click(function() {
 var url = this.href;
 var dialog = $('<div style="display:hidden"></div>').appendTo('body');
//load remote content
 dialog.load(
 url, 
 {},
 function (responseText, textStatus, XMLHttpRequest) {
 dialog.dialog();
 }
 );
//prevent the browser to follow the link
 return false;
 });
 });
</script>
<a class="ajax" href="http://www.google.com">
 Open a dialog
</a>

问题:它显示对话框,但谷歌不在里面。

我没有任何问题:

<script type="text/javascript">
 $(function() {
 $("#dialog").dialog();
 });
 </script>
<div id="dialog" title="Basic dialog">
 <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
</div>

任何想法?

Javi

时间:原作者:2个回答

0 0

你不能生成跨域ajax请求。 这意味着你不能从 google.com 获取html并将它放入你的对话框中。 如果你想让google在对话框中显示,那么你可以能需要使用 iframe,或者者编写你自己的html 。

原作者:
0 0

出于安全原因,你不能将AJAX请求作为最初提供给网页的域的域。 有关安全风险的示例,请参见 http://en.wikipedia.org/wiki/Same_origin_policy

相反,你应该考虑使用is加载的Google页面,然后在按钮点击时显示在正确的位置。

例如:

<iframe src="http://www.google.com/" style="display:none">
 <p>Your browser does not support iframes.</p>
</iframe>
原作者:
...