4

わかりましたので、これはちょっと長い質問です。ExtJS と Django を使用して Web サイトを作成しています。IFrame を取得するときに URL にクエリ パラメータを追加する方法について、インターネットを検索しました。基本的に、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')

それが十分な情報であることを願っています。言わないだけなら

ありがとう

4

1 に答える 1

2

Ok so the way I fixed it was very easily because of my conditions (I did not need any of my arguments in views.py).
So what I did was inside my IFrame html page I did this

window.onload = function () {
        con_port = "?port=" + WebUtil.getQueryVar('con_port', null);

and inside ExtJS I did this

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"
            }
    }]
});

for now I just hard coded in the port number but you can just add your port number to the string like so

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'),
于 2011-07-13T15:52:10.140 に答える