Facebox 是一款基于jQuery 的简洁漂亮的弹出窗口。它可以在窗口里显示一个div 的内容,也可以显示图片,还有加载一个页面的内容,个人有时需要加载不同域名的页面,Facebox 没有解决这个跨域的问题。
尝试一下修改facebox.js文件,找到
1
2
3
function fillFaceboxFromAjax(href, klass) {
$.facebox.jqxhr = $.get(href, function(data) { $.facebox.reveal(data, klass) })
}
替换为
1
2
3
function fillFaceboxFromAjax(href, klass) {
$.facebox.jqxhr = $.ajax({url: href, dataType: 'jsonp', success: function(response) { $.facebox.reveal(response.data, klass) }})
}
剩下就是需要在调用的页面输出JSON 内容,如用python tornado 实现输出
1
2
3
4
5
6
7
8
9
10
11
12
13
14
import json
class RemoteHandler(tornado.web.RequestHandler):
def get(self):
rep_code = 200
rep_data = 'your page string'
data = {'code': rep_code, 'data': rep_data}
callback = self.get_argument("callback")
if callback:
self.write('%s(%s)' % (callback, json.dumps(data)))
else:
self.write(json.dumps(data))
Facebox http://defunkt.io/facebox/ github https://github.com/defunkt/facebox