Как проверить неопределенность в transcrypt

Мне нужно проверить, существует ли атрибут объекта javascript.

Например, чтобы увидеть, доступно ли расширение jquery. Следующая строка возвращает неопределенное в консоли браузера:

$ ("# MyID"). ТОС

Я хочу проверить это значение в transcrypt, я попытался:

getattr (S ("#myid"), "toc") является None

но это не работает:-/

1 ответ

Решение

Следующее будет работать:

HTML:

<html>
    <head>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>    
    </head>
    <body>
        <div id="myid"></div>
        <script src="__javascript__/test.js"></script>
    </body>
</html>

Transcrypt:

__pragma__ ('alias', 'S', '$')

print (111, getattr (S ('#myid') [0], 'style') != None)
print (222, getattr (S ('#myid') [0], 'toc') != None)

console.dir (S ('#myid') [0])

Это печатает:

111 True
222 False
div#myid

В качестве альтернативы вы всегда можете встроить JS в Transcrypt:

__pragma__ ('js', '{}', '''
   console.log (333, $("#myid")[0].style != undefined);
   console.log (444, $("#myid")[0].toc != undefined);
''')

Какие отпечатки:

333 true
444 false

Кстати, я предпочитаю синтаксис Python. Но в крайних случаях JS всегда существует как побег, хотя, вероятно, вам это никогда не понадобится.

Другие вопросы по тегам