好的,这是一个很长的问题。我正在使用ExtJS和Django来创建一个网站。我在互联网上搜索如何在获取IFrame时将查询参数添加到网址。所以基本上我有这个在ExtJS中创建一个面板,里面有一个html页面。我希望能够在url中传递一个端口号,这样当它调用html时,它将自动拥有与vnc连接的端口号。我的VNC客户端是noVNC
var noVNC = Ext.create('Ext.panel.Panel', {
title: "noVNC",
frame: false,
title: false,
width: '100%',
height: '100%',
layout: 'fit',
items: [{
xtype: "component",
autoEl: {
tag: "iframe",
src: "/noVNC"
}
}]
});
起初我以为我可以做到
src: "/noVNC?port=5900"
然而,(通过研究)我意识到你必须编辑views.py和urls.py 我想我有urls.py正确
from django.conf.urls.defaults import *
urlpatterns = patterns('',
url(r'^$', 'kfe.views.index'),
url(r'^index$', 'kfe.views.index'),
url(r'^noVNC/(?P<port>\d+)/$' , 'kfe.views.noVNC'),
)
但我不确定如何使用views.py
def noVNC(request):
return render(request, 'noVNC_Auto.html', content_type='text/html')
希望这是足够的信息。如果不是只告诉我
由于
答案 0 :(得分:2)
好的,所以我修复它的方式很容易因为我的条件(我在views.py中不需要任何参数)。
所以我所做的就是在我的IFrame html页面中我做了这个
window.onload = function () {
con_port = "?port=" + WebUtil.getQueryVar('con_port', null);
在ExtJS里面我做了这个
var noVNC = Ext.create('Ext.panel.Panel', {
title: "noVNC",
frame: false,
title: false,
width: '100%',
height: '100%',
layout: 'fit',
items: [{
xtype: "component",
autoEl: {
tag: "iframe",
src: "/noVNC?con_port=5901"
}
}]
});
现在我只是硬编码了端口号,但你可以将你的端口号添加到字符串中,如此
src: "/noVNC?con_port=590" + port
views.py
def noVNC(request):
return render(request, 'noVNC_Auto.html', content_type='text/html')
urls.py
urlpatterns = patterns('',
url(r'^$', 'kfe.views.index'),
url(r'^index$', 'kfe.views.index'),
url(r'^noVNC$' , 'kfe.views.noVNC'),