我想知道在facebook iframe应用程序中使用jquery时需要考虑什么。
我试图让我的网格使用分页而不是一直重新加载整个ASP.NET MVC页面。
在facebook iframe应用程序中使用jquery时是否需要执行任何特殊操作?
编辑:我已经在使用像datepicker这样的jquery-ui组件了。但是,只要我想要在Html元素中插入Controller动作的结果,我就会挣扎。
EDIT2:似乎使用POST协议的jquery函数工作正常,但在使用GET协议时却没有。
示例电话:
使用:
$("#element").live("click", function () {
$.ajax(
{
type: "POST",
url: "<%=Url.Action("Action","Controller") %>",
parameters: { page: 2 },
success: function(result) {
$("#element2").html(result);
}
});
return false;
});
不起作用:
$("#element").live("click", function () {
$.ajax(
{
type: "GET",
url: "<%=Url.Action("Action","Controller") %>",
parameters: { page: 2 },
success: function(result) {
$("#element2").html(result);
}
});
return false;
});
答案 0 :(得分:3)
我已经在使用jquery-ui了 像datepicker这样的组件可以工作 精细。但是只要我想要 插入Controller的结果 在Html元素中的行动我很难。
您可以使用jQuery函数getJSON
将控制器操作的结果插入到HTML元素中,有关详细信息,请参阅this reference document。
您的控制器操作应返回JsonResult
个对象。
例如,这个jQuery代码在Controller(myController)上调用Action(myAction),并使用返回对象的属性更新HTML元素:
$.getJSON('MyWebsite/MyController/MyAction', SomeParameters, function (result) {
if (result!=null)
{
$('#MyElement').html(result.Value1);
})
您的控制器操作应该返回JsonResult
这样的对象:
public JsonResult MyAction()
{
return Json(new SomeObject
{ Parameter1 = Value1}, JsonRequestBehavior.AllowGet);
}
希望这有帮助。
答案 1 :(得分:1)
不需要执行任何特殊操作:iframe的内容完全由您控制。您可以在iframe中加载所需的任何javascript文件,并对您的代码执行任何操作。我在Facebook iframe应用程序中广泛使用了jquery。需要注意的关键是iframe内容只是另一个网页。您可以在常规网页中执行任何操作(除非更改窗口大小:这很痛苦,但仍然可以通过Facebook SDK完成)。
如果您需要访问Facebook API,Facebook Javascript SDK是您的朋友,但在iframe中,您可以在常规网页上执行任何操作。
答案 2 :(得分:0)
我认为你不能。
出于安全原因,浏览器禁用两个iFrame(父/子)之间的javascript,如果它们不在同一个域中。因此,当facebook.com在iFrame中时,www.yourwebsite.com无法从www.facebook.com调用javascript函数(愚蠢的例子,但它可以帮助你说清楚)
我认为你很难接受呼叫服务