未捕获的ReferenceError:未定义app,Uncaught SyntaxError:意外的令牌<。缺了点什么

时间:2016-01-06 16:15:44

标签: javascript jquery web.py

不知何故,该按钮未定义,即使它是由脚本指定的。缺少什么?

index.html

   $def with (form, text)
    <html>
        <head>
        <title>Reverser</title>
              <link rel="stylesheet" href="css/master.css">
        </head>
        <body>
            <div>
                <input id="str_invert_input" type="text">
                <button onclick="app.invert()">Invert</button>
            </div>
            <hr>
            <div>
                <h2 id="result"></h2>
            </div>
            <script src="/web/static/js/jquery-1.11.3.min.js" type="text/javascript"></script>
            <script src="/web/static/js/main.js" type="text/javascript"></script>
        </body>
    </html>

main.js

var app = {
  invert : function(){
    var str = $('#str_invert_input');
    var inputVal = str.val();
    var encoded = encodeURI(inputVal);

    var result = $('#result');

    // Add the web service URL
    $.get( "http://127.0.0.1:8081/"+encoded, function( data ) {

    result.html(data);

    });
  }

}

正如您所看到的那样,应用程序似乎已被定义,并由index.html上的脚本调用。

main.py

import web
from web import form

urls = (
    '/(.*)', 'index',
)

render = web.template.render('C:/Users/A/Desktop/Web/templates')

my_form = form.Form(
                form.Textbox('', class_='textfield', id='textfield'),
                )

class invert:
    def GET(self, invert):
        web.header('Access-Control-Allow-Origin', '*')
        return render.index(form, "String Reverser!")
        #no code yet




app = web.application(urls, globals())

if __name__ == "__main__": 
    app.run()

2 个答案:

答案 0 :(得分:0)

我检查了您的HTML代码,发现脚本type定义错误。

你必须替换这个

<script src="/web/static/js/jquery-1.11.3.min.js" type="text/html"></script>
<script src="/web/static/js/main.js" type="text/html"></script>

使用

<script src="/web/static/js/jquery-1.11.3.min.js" type="text/javascript"></script>
<script src="/web/static/js/main.js" type="text/javascript"></script>

其他的事情是,我想

$def with (form, text)

如果该代码与Javascript / jquery相关,则此代码应位于head部分的脚本标记中。

希望这对你有用。

答案 1 :(得分:0)

您使用错误的类型

包含文件
<script src="/web/static/js/jquery-1.11.3.min.js" type="text/html"></script>
<script src="/web/static/js/main.js" type="text/html"></script>

应该是

<script src="/web/static/js/jquery-1.11.3.min.js" type="text/javascript"></script>
<script src="/web/static/js/main.js" type="text/javascript"></script>

由于你将它们作为text/html,因此内部的变量不会被识别,并且函数和其他javascript对象也是如此。因此,您将获得各种未定义的行为。

作为补充说明,这并不一定是因为您错过text/javascript错误发生的原因。如果您查看here,则type属性似乎并非完全必要。您错误的原因是您明确声明text/html,因此将以这种方式处理文件。