Не относящийся к проблеме onclick, но также и связанный:
Для атрибутов HTML, имя которых сталкивается с зарезервированными словами JavaScript, альтернативное название выбрано, например, <div class=''>
, но div.className
, или <label for='...'>
, но label.htmlFor
.
В разумных браузерах, это не влияет setAttribute
. Таким образом у геккона и WebKit Вы звонили бы div.setAttribute('class', 'foo')
, но в IE необходимо использовать имя свойства JavaScript вместо этого, таким образом div.setAttribute('className', 'foo')
.
Исходный urllib
просто не вызывает исключение для кода 403. Если вы добавите print c.getcode ()
в последнюю строку вашей программы, urllib
достигнет ее и все равно распечатает 403.
Затем, если вы сделаете print c.read ()
в конце, вы увидите, что действительно получили страницу с ошибкой из Википедии. Все дело в том, что urllib2
решает рассматривать ошибку 403 как исключение во время выполнения, в отличие от urllib
, позволяющего получить ошибку 403 и затем что-то сделать со страницей.
Википедия, похоже, отфильтровывает пользовательский агент urllib2 по умолчанию. Просто измени его.