2013-12-17 2 views
0

Я пытаюсь использовать пижаму (http://pyjs.org/). Мой входной файл, названный hi.py, выглядит следующим образом:Пустая страница с простейшими возможными пижами (пижамы) приложение

from pyjamas import Window 
from pyjamas.ui import RootPanel, Button 
from pyjamas.ui import HTML 

def greet(sender): 
    Window.alert("Hello!") 

b = Button("Click me", greet) 
RootPanel().add(b) 

я запускаю следующую команду:

python ~/pyjs-pyjs-07f54ad/bin/pyjsbuild hi.py 
Building : hi 
PYJSPATH : [ 
    /Users/michaelnatkin/HelloPyjs 
    /Users/michaelnatkin/pyjs-pyjs-07f54ad/library 
    /Users/michaelnatkin/pyjs-pyjs-07f54ad/addons 
] 
Built to : /Users/michaelnatkin/HelloPyjs/output 

Который, как представляется, работать без ошибок, и вот мой получившийся каталог:

Michael-Natkins-MacBook-Pro-2:HelloPyjs michaelnatkin$ ls . 
hi.js hi.py output 
Michael-Natkins-MacBook-Pro-2:HelloPyjs michaelnatkin$ ls output 
__init__.py   gchart.gif   hi.safari.cache.html 
_pyjs.js   hi.html    history.html 
bootstrap.js   hi.ie6.cache.html  tree_closed.gif 
bootstrap_progress.js  hi.mozilla.cache.html  tree_open.gif 
disclosurePanelClosed.png hi.nocache.html   tree_white.gif 
disclosurePanelClosed_rtl.png hi.oldmoz.cache.html 
disclosurePanelOpen.png  hi.opera.cache.html 

Я тогда направить свой браузер на один из HTML-файлов: файла: ///Users/michaelnatkin/HelloPyjs/output/hi.html

, и я получаю ... пустую страницу. Единственная ошибка в моей Js консоли:

Uncaught SecurityError: Blocked a frame with origin "null" from accessing a frame with origin "null". Protocols, domains, and ports must match. 

, который я предполагаю, что это не слишком удивительно, так как HTML-файл говорит:

<html> 
<!-- auto-generated html - You should consider editing and adapting this 
to suit your requirements. No doctype used here to force quirks mode; see 
wiki for details: http://pyjs.org/wiki/csshellandhowtodealwithit/ 
--> 
<head> 

<title>hi (Pyjamas Auto-Generated HTML file)</title> 
<meta name="pygwt:module" content="hi"> 
</head> 
<body style="background-color:white"> 
<script type="text/javascript" src="bootstrap.js"></script> 
<iframe id="__pygwt_historyFrame" style="display:none;"></iframe> 
<script type="text/javascript" src="bootstrap.js"></script> 
<iframe id="__pygwt_historyFrame" style="display:none;"></iframe> 
</body> 
</html> 

Так .. я полностью застрял. Может ли кто-нибудь сказать мне, как заставить этого плохого мальчика производить продукцию? У меня есть гораздо более сложное приложение, которое я хочу создать, но если я не могу сказать «Привет», это не будет хорошо. Спасибо!

ответ

0

Вы тоже пробовали в Firefox? Пока ничего не отображается в Chrome, с Firefox я получаю сообщение об ошибке, которое происходит из способа импорта RootPanel и Button. Вы должны заменить свою одну строку:

from pyjamas.ui.RootPanel import RootPanel 
from pyjamas.ui.Button import Button 

После этого ваша кнопка приветствует меня правильно.

И что касается проблемы с Chrome, запустите его с помощью -allow-file-access-from-files или запустите локальный веб-сервер, чтобы отобразить вашу страницу. Более подробная информация: https://github.com/pyjs/pyjs/wiki/googlechromeproblems

+0

Да, это все. Имеет отношение к поведению Chrome. Спасибо! –

Смежные вопросы