Как проверить неопределенность в 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 всегда существует как побег, хотя, вероятно, вам это никогда не понадобится.