爱简单吧

分享简单,爱生活,爱简单

Facebox 跨域打开页面

Facebox 是一款基于jQuery 的简洁漂亮的弹出窗口。它可以在窗口里显示一个div 的内容,也可以显示图片,还有加载一个页面的内容,个人有时需要加载不同域名的页面,Facebox 没有解决这个跨域的问题。





尝试一下修改facebox.js文件,找到

faceboxfacebox Remote get
1
2
3
function fillFaceboxFromAjax(href, klass) {
  $.facebox.jqxhr = $.get(href, function(data) { $.facebox.reveal(data, klass) })
}

替换为

faceboxfacebox Remote ajax
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 实现输出

python tornado json
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

 

本文简短网址: http://www.ijd8.com/t/24 转摘注明来源

Category: Javascript Tags: ajax, Remote, 跨域, Facebox

 

Share

 

Comments