Dev.Opera 2012
2013 2012 2011 2010 2009 2008 2007 2006
Native CSS Feature Detection via the @supports Rule
With browsers of varying degrees of standards support still in use for browsing the Web (from decent modern browsers, to old rustbuckets like IE6), we are pretty comfortable with the idea of sending different code to different browsers to provide…
Opera's year in Dev Rel 2012
Everyone has been working and playing really hard in the web industry this year, and the Opera developer relations team is no exception! Our well travelled group of open standards raconteurs have walked the globe, educating, styling, scripting, code fixing,…
Raw WebGL 101 — Part 4: Textures
Greetings, WebGL ninjas. The fourth tutorial is upon you, so be prepared: keep your browsers sharp and your scripts quick, and meld into the shadows, ready to strike! The striking will of course involve writing some cool WebGL, rather than infiltrating a…
RoboHydra: advanced techniques
This is the third article we've published about RoboHydra. The first two introduced RoboHydra and explored common, simple uses of RoboHydra; this one however is going to focus on advanced techniques you can use for more complicated and custom purposes. In…
Opera TV Emulator: Getting started
Opera TV Emulator は Linux のシステムイメージの形で提供され、バーチャルマシン Oracle VirtualBox を用いて起動する必要があります。これにより Web 開発者向けのテスト環境をできるだけ実際のデバイスシステムに近づけることができます。Virtual Box は Windows, Linux, Mac OS X などの一般的なオペレーティングシステム上で動作します。
Native CSS feature detection via the @supports rule
With browsers of varying degrees of standards support still in use for browsing the Web (from decent modern browsers, to old rustbuckets like IE6), we are pretty comfortable with the idea of sending different code to different browsers to provide…
Network Service Discovery API support in Opera
According to Nielsen, as of 2009 nearly 60% people in the US used their TV and internet simultaneously for an average of 2.5 hours per person per month. That's around 128 million people and just over 19 billion minutes of simultaneous viewing per month! It's…
Client-side error logging
For decades, programmers have been using error logging to find out what they did wrong when their code isn't working. Server-side errors are usually easy to track down. Requests to your website timing out? Check the web server's logs and see if there's…
Mẫu (template) cho kho ứng dụng Opera TV Store
Kể từ khi ra mắt kho ứng dụng Opera TV Store, chúng tôi nhận thấy có rất nhiều ứng dụng được viết và xuất bản bởi các lập trình viên và được nhiều người dùng đón nhận xử dụng. Trên thực tế, các ứng dụng cho TV của chúng tôi được xây dựng dựa trên các tiêu…
Opera TV Store 應用程式範本
從發行 Opera TV Store 的那一天開始,我們看到建立者們已發佈各種不同的應用程式供使用者享用。我們的 TV 應用程式是使用網頁標準所建立的,這表示網頁開發者可使用他們現有的技術為 TV 平台建立內容。開發 TV 內容的操作可能還是無法駕輕就熟,不過為了讓操作更簡單,我們建立了幾個供內容建立者自由使用的一般應用程式範本。
Image and video post-processing with WebGL
WebGL is not only about rendering 3D graphics. While WebGL allows you to create stunning 3D, it can also be used for 2D rendering. One common use-case is pixel manipulation, or image post-processing, which allows us to add blur or other filter effects to…
Flexbox — fast track to layout nirvana?
HTML and CSS is a great content delivery mechanism in many ways — it is easy to learn, flexible and powerful. One thing however that it has never excelled at is document layout. If you want to create a simple typographic essay layout with a floated image or…
CSS3 vs jQuery Animations
Flash originally paved the way for us to feature more than just text and images on web pages. It allowed developers to include animations and other rich effects on web pages, leading to a much more colourful and varied user experience. However, Flash was…
Responsive web development with WordPress — a case study
Many of us have moved on from thinking about media queries and responsive layout towards addressing the challenges of responsive images, navigation, UX and more.
HTTP: Response Codes
In the last article, we concluded by saying that HTTP manages the interactions between a client and a server, and explained the notion of HTTP headers. There will be a lot more to say about these later on in this article series: they influence interactions…
Using RoboHydra as a mock server
As you can see from my introductory article Robohydra: a new testing tool for client-server interactions, RoboHydra is a flexible web server that can help you develop and test HTTP-based applications. The first article explored how to use RoboHydra as a proxy…
Functional key handling in Opera Device SDK based TV browsers
This article offers advice for generic browsers based on the Opera Device SDK. For specific information about the Opera TV Store – which introduces further functionality, as well as additional requirements to authors – please refer to this separate article:…
Opera Mini and JavaScript
Opera Mini is one of the world's foremost mobile browsers, which runs on a range of devices and operating systems ranging from expensive smart phones and tablets to less expensive feature phones that are in common use across many parts of the world. In July…
Opera TV Store アプリケーションテンプレート
Opera TV Store がスタートしてから、これまでに多くのアプリケーションが公開され、ユーザーに親しまれてきました。Opera の TV アプリケーションは Web 標準を用いて作成されるため、Web 開発者はすでに持っているスキルを使って、TV プラットフォーム向けのコンテンツを作成することができます。しかし TV 向けの開発は依然として馴染みのないものに感じられることもあるため、クリエイターの方々が自由に使えるような形で典型的なアプリ向けのテンプレートを公開しました。
widget.id
From Opera 15 onward, Opera 11 & 12’s extension format is no longer supported, and instead, we’ve switched to Chromium’s extension model. Check out our new documentation for developing extensions for Opera 15 and higher and start building your own extensions.
Элемент access
Элемент <access> позволяет авторам дать расширению доступ к внешним сетевым ресурсам. Если в процессе выполнения программе необходимо обратиться к каким-либо ресурсам вне пакета расширения (к веб-ресурсам), то в данном элементе указывается адрес нужного…
Элемент feature
Элемент <feature> определяет некоторые свойства расширения, такие как, например, возможность отображения в Экспресс-панели.
Элемент preference
Элемент <preference> позволяет разработчику установить необходимые настройки. Пары ключ-значение, определяемые элементом, устанавливаются в момент первого запуска расширения и затем постоянно хранятся в памяти. Во время работы расширения эти значения доступны…
Introduction to XMLHttpRequest Level 2
XMLHttpRequest allows developers to make HTTP and HTTPS requests and modify the current page without reloading it. Submitting forms and retrieving additional content are two common uses.
Элемент license
Элемент <license> указывает лицензию на использование программы. Ниже даны атрибуты этого элемента:
Файл config.xml
Обязательный файл config.xml дает браузеру Opera такую важную информацию, как название, описание и версия расширения.
Context Menu
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.addItem() and MenuItem.addItem()
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.contexts
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.createItem()
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.disabled
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.documentURL
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.documentURLPatterns
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.icon
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.id
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.isEditable
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.item() and MenuItem.item()
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.length
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.linkURL
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.mediaType
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.onclick and MenuItem.onclick
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.pageURL
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.parent
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.contexts.menu.removeItem() and MenuItem.removeItem()
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.selectionText
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.source
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.srcElement
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.srcURL
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuEvent.target
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.targetURLPatterns
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.title
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
MenuItem.type
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
Temas ligeros de Opera
Opera 12 nos trae muchas mejoras, incluyendo actualizaciones del sistema de temas. Para empezar, las actualizaciones son tan extensas que hemos cambiado el nombre de "pieles" a "temas". Hay un nuevo sistema de temas (mas liviano) que se encuentra en la parte…
Testing your app inside the Opera TV Store
Before submitting an application to the Opera TV Store, developers need to ensure that it works as expected, to avoid a lengthy review process and potential delays.
Introducing mobile browser automation
Opera Mobile brings the Web to millions of people through their mobile phones and other non-desktop devices. Opera believes in giving people access to the full Web, and not making the distinction of a “mobile web”. Testing on mobile devices has always been…
Opera TV Store 向けアプリケーションの構築
Opera TV Store は、Opera が審査を行い提供する、テレビ専用の Web アプリケーションのカタログです。開発者はこのポータルを通して、開発したアプリケーションの提出と共有を行えます。ポータルはストアフロント(Web ベースのアプリケーション)によりエンドユーザーにアプリケーションを提示し、ユーザーはアプリケーションに素早く簡単にアクセスすることができます。
TV 向け Web コンテンツを作成する
このガイドは Web サイトとアプリケーションを作成する Web 開発者向けに書かれたもので、ネット対応テレビとの互換性を高めるために Opera for Devices SDK の機能を使用して、サイトとアプリケーションを最適化できるようにすることを目的としています。
Raw WebGL 101 — Part 3: advanced shader
Welcome to part 3 of our Raw WebGL series! Now that we've covered the real basics and built up some simple fragment and vertex shaders, let's move forward and create a much more complex fragment shader example, to give you more of a flavour of the different…
Robohydra: a new testing tool for client-server interactions
HTTP is the most used protocol on the internet. Most APIs available on the internet use it — not only web pages, but also mobile applications, public APIs, programs for backend service integration, etc. Considering how much software uses HTTP to talk to other…
Head tracking with WebRTC
The WebRTC standard allows supporting browsers to stream video and audio content directly from native devices such as a webcam. One rather exciting use case for WebRTC is head tracking — detecting the movement of your head (or other appendages) in relation to…
Opera for Devices: Out of Memory システム
Opera for Devices は Opera のヒープ領域の使用に関して、厳密な制限を設定するための強力なメカニズムを提供しています。多くのデバイスにとってメモリは貴重な資源であり、予期できない事象が発生する状況のもとで、異なるプログラム間によるリソースの競合が発生することがあります。Out of Memory (OOM) システムは、Opera の機能性を保証しながらも、メモリの使用量に制限をかけることができます。
API W3C położenia urządzenia: wykrywanie położenia i przyspieszenia
Długo mówiło się, że aplikacje dedykowane mają przewagę nad aplikacjami sieciowymi, bo mogą korzystać z podzespołów urządzeń, np. żyroskopu czy przyspieszeniomierza. Od teraz te podzespoły mogą być wykorzystywane również przez strony internetowe, dzięki…
Tworzenie rozszerzeń Szybkiego wybierania w Operze
W 2007 roku wprowdziliśmy na świat Szybkie wybieranie. Nasz pomysł okazał się na tyle popularny, że podobne implementacje można znaleźć również w innych przeglądarkach. Nie bylibyśmy jednak dobrymi rodzicami, gdybyśmy nie pozwolili naszemu "dziecku" dorastać…
The W3C device orientation API: detecting orientation and acceleration
For a long time, there was talk of native apps having an advantage over web apps on mobile because native apps can utilise native device capabilities, for example the gyroscope and accelerometer. However, now you can do that using normal web pages too, thanks…
A labs release to get your SPDY senses tingling
For many years now, we have relied on the marriage of the TCP and HTTP protocols for handling data request/response communication, and transporting the resulting data packets to where they need to go. In short, they are how we get things done on the Web. But…
Изучаем матрицы трансформаций в CSS
Матричные функции — matrix() and matrix3d() — две самые головоломные в плане понимания вещи в CSS3-трансформациях. В большинстве случаев, ради простоты и ясности, вы будете пользоваться функциями вроде rotate() и skewY(). Но всё же за каждой трансформацией…
Raw WebGL 101 — Part 2: a simple shader
In the last part of this article series — Raw WebGL 101 — Part 1: getting started, we introduced you to the world of writing raw WebGL (look ma, no libraries). We got you set up and showed you how to create a couple of very basic examples along with some…
An Introduction to WebVTT and <track>
Web Video Text Tracks, more commonly known as WebVTT, is a file format that allows us to mark up external text tracks. Using it in conjunction with HTML5's <track> element means we can associate information such as subtitles, captions and descriptions for a…
HTTP: Let's GET it on!
A few weeks ago, we learnt that HTTP is an application-level protocol. Now it is time to explore how we can use this protocol to communicate between the client and the server.
Opera TV Store app templates
Since the launch of the Opera TV Store, we've seen a variety of apps published by creators and enjoyed by users. The fact that our TV apps are built using web standards means that web developers can use their existing skills to create content for the TV…
Responsive images: what's the problem, and how do we fix it?
Responsive images is a surprisingly complicated topic, and one that's been steadily gaining attention over the last year as more developers discover they need them and then discover there's no good solution yet. This article aims to give an overview of the…
TV ブラウジング用に空間ナビゲーションを調整する
TV 向けコンテンツのデザインにあたり、最大の難題の一つとなるのはナビゲーションです。ページのナビゲーションにはいくつかの異なるメソッド(方式)が存在するだけでなく、そのうちのどれも、完璧な利便性と実用性を備えているとは言い難いからです。現時点においては、ユーザーは以下のデバイスを使って、TV 上のブラウジング操作を行っていると想定できます:
Understanding the CSS Transforms Matrix
The matrix functions — matrix() and matrix3d() — are two of the more brain-bending things to understand about CSS3 Transforms. In most cases, you'll use functions such as rotate() and skewY() for ease and clarity's sake. Behind every transform, though, is an…
URL Filter syntax
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
Lekkie motywy Opery
Opera 12 wprowadza wiele usprawnień w tym aktualizację systemu skórek. Na początek przemianowaliśmy nazwę z skórki na motywy. Jest to nowy, lekki system, który oparty jest na standardowym motywie Opery. W tym artykule przyjrzymy się jak te lekkie motywy…
Opera 的輕羽佈景主題
Opera 12 帶給我們很多的改善,包括了 Opera 外觀主題系統的更新。首先,最大的更新就是我們將它的名稱從外觀(skins)改為佈景主題(themes)。新的輕羽級系統(內部稱為 personas)將成為 Opera 的預設主題,讓使用者更容易自訂化是它最大優點。本文將帶大家看看這個輕羽系統是如何運作的。
Resource Loader
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
opera.extension.getFile()
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
RuleOptions.excludeDomains
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
RuleOptions.includeDomains
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
RuleOptions.resources
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
RuleOptions.thirdParty
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
Screenshot
This functionality has not landed in a stable Opera version yet, but you can use it already in Opera Next.
opera.extension.getScreenshot() and BrowserTab.getScreenshot()
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
opera.extension.urlfilter.allow.add()
This functionality is currently in production, and only available to test in an experimental build of Opera desktop. To download the experimental build, see Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter.
Desktop build with new extension APIs: Screenshot, Resource Loader and URL Filter
We've been working hard recently to improve the functionality available inside Opera extensions, and today we are proud to reveal some of the fruits of our labours. In this article we'll share with you some new experimental desktop builds that feature three…
Opera'nın Hafif Temaları
Opera 12, tema sistemindeki güncellemeler dahil olmak üzere birçok geliştirme içerir. Başlangıç olarak, güncellemelerin kapsamlı olmasından dolayı eski tema ismi yeni tema olarak ad değiştirmiştir. Eski isim İngilizcede "skin" olarak geçerken şimdi "theme"…
Opera Mobile Emulator build with experimental WebKit prefix support
CSS vendor prefixes were introduced in CSS 2.1 for vendor-specific extensions with the warning that authors should avoid vendor-specific extensions. CSS Snapshot 2010 extended the definition: "Prior to a specification reaching the Candidate Recommendation…
BrowserTab.browserWindow
The readonly browserWindow attribute exposes the context window. On getting, the browserWindow attribute returns a BrowserWindow object representing the context window.
BrowserTab.close()
The following example creates a button on the browser toolbar. When the button is clicked, the current tab is detected and then closed.
BrowserTab.closed
The readonly closed attribute exposes the closed state of the browser tab. On getting, the closed attribute returns true if the browser tab has been closed, otherwise, it returns false.
BrowserTab.faviconUrl
The readonly faviconUrl attribute exposes the current favicon for the browser tab. On getting, the browser returns the URL of the favicon for the current document if an icon exists and if the browser tab is not closed. Otherwise, an empty string is returned.
BrowserTab.focus()
The following example creates a button on the browser toolbar. When the button is clicked, a tab is created with the specified URL and is given focus.
BrowserTab.focused
When specified as an item in a BrowserTabProperties object, the focused property indicates the desired focus state of a browser tab. The value true indicates that the tab should be focused, and false indicates that the focus state should not change.
BrowserTab.id
The readonly id attribute a unique identifier for this browser tab. The value is a string of characters determined by the implementation and is unique for each browsing session.
BrowserTab.locked
The readonly locked attribute exposes the locked state of the browser tab. On getting, the locked attribute returns true if the tab is locked, otherwise it returns false.
BrowserTab.position
The readonly position attribute exposes the current tab position. On getting, the tab position is only returned if the browser tab is open, otherwise NaN is returned.
BrowserTab.private
The readonly private attribute exposes the privacy mode of the browser tab. On getting, the private attribute returns true if the privacy mode of the browser tab is private, otherwise it returns false.
BrowserTab.readyState
The readonly readyState attribute exposes the current document readiness of the page within the browser tab.
BrowserTab.selected
The readonly selected attribute exposes the selected state of the browser tab. On getting, the selected attribute returns true if the browser tab is currently selected, otherwise, it returns false.
BrowserTab.tabGroup
The readonly tabGroup attribute exposes the context tab group. On getting, the tabGroup attribute returns a BrowserTabGroup object representing the context tab group.
BrowserTab.title
The readonly title attribute exposes the title of the current document within the browser tab. On getting, the browser only returns the title if the tab is open, otherwise an empty string is returned.
BrowserTab.update()
The update() method provides a way to update the properties of a browser tab.
BrowserTab.url
The readonly url attribute exposes the document URL of the browser tab. On getting, the implementation returns the URL of the current document if the tab is open, otherwise it returns an empty string.
BrowserTabGroup.browserWindow
The readonly browserWindow attribute exposes the context window. On getting, the browserWindow attribute returns a BrowserWindow object representing the context window.
BrowserTabGroup.close()
The close() method provides a way to close a browser tab group along with all browser tabs within the associated tab collection.
BrowserTabGroup.closed
The readonly closed attribute exposes the closed state of the browser tab group. On getting, the closed attribute returns true if the browser tab group has been closed, otherwise, it returns false.
BrowserTabGroup.collapsed
The readonly collapsed attribute exposes the collapsed state of the browser tab group. On getting, the attribute returns true if the browser tab group is collapsed, otherwise it returns false.
BrowserTabGroup.focus()
The focus() method provides a way to focus a browser tab group.
BrowserTabGroup.id
The readonly id attribute a unique identifier for this browser tab group. The value is a string of characters determined by the implementation and is unique for each browsing session.
BrowserTabGroup.insert()
The insert() method provides a way to insert a browser tab into this browser tab group, before the specified child, if provided.
BrowserTabGroup.position
The readonly position attribute gets the tab position of this browser tab group, if the tab group is open. Otherwise, it returns NaN.
BrowserTabGroup.tabs
The readonly tabs attribute exposes a tab manager. The tab manager is an object that implements the BrowserTabManager interface and manages all browser tabs that are currently open within the context tab group.
BrowserTabGroup.update()
The update() method provides a way to update the properties of a browser tab group.
opera.extension.tabGroups.create()
The create() method provides a way to create a new browser tab group, either globally or within the context window. When the create() method is invoked, the following happens:
opera.extension.tabGroups.getAll()
The getAll() method provides a way to obtain a tab group collection. The value returned is based on the following algorithm:
opera.extension.tabs.create()
The create() method provides a way to create a new browser tab, either globally or within the context window or context tab group. The value returned is based on the following algorithm:
opera.extension.tabs.getAll()
The getAll() method provides a way to obtain a tab collection. The value returned is based on the following algorithm:
opera.extension.tabs.getSelected()
The getSelected() method provides a way to obtain the currently selected browser tab, either globally or within the context window or context tab group. The value returned is based on the following algorithm:
BrowserWindow.close()
The close() method provides a way to close a browser tab group along with all browser tab groups and browser tabs within the associated tab group collection and tab collection, respectively.
BrowserWindow.closed
The readonly closed attribute exposes the closed state of the browser window. On getting, the closed attribute returns true if the browser window has been closed, otherwise, it returns false.
BrowserWindow.focus()
The following example creates a button in the browser toolbar. When the button is clicked, a new, empty browser window is created and then given focus.
BrowserWindow.focused
The readonly focused attribute exposes the focused state of the browser window. On getting, the focused attribute returns true if the browser window is focused, otherwise it returns false.
BrowserWindow.height
When specified as an item in a BrowserWindowProperties object, the height property specifies the desired height of a browser window.
BrowserWindow.id
The readonly id attribute is a unique identifier for this browser window. The value is a string of characters determined by the implementation and is unique for each browsing session.
BrowserWindow.insert()
The insert() method provides a way to insert a specified browser tab group or browser tab into this browser window, before the specified child, if provided.
BrowserWindow.left
When specified as an item in a BrowserWindowProperties object, the left property specifies the desired left offset of a browser window.
BrowserWindow.private
The readonly private attribute exposes the privacy mode of the browser window. On getting, the private attribute returns true if the privacy mode of the browser window is private, otherwise it returns false.
BrowserWindow.tabGroups
The readonly tabGroups attribute exposes a window tab group manager. The tab group manager is an object that implements the BrowserTabGroupManager interface and manages all browser tab groups that are currently open within the context window.
BrowserWindow.tabs
The readonly tabs attribute exposes a window tab manager. The window tab manager is an object that implements the BrowserTabManager interface and manages all browser tabs that are currently open within the context window.
BrowserWindow.top
When specified as an item in a BrowserWindowProperties object, the top property specifies the desired top offset of a browser window.
BrowserWindow.update()
The update() method provides a way to update the properties of a browser window.
BrowserWindow.width
When specified as an item in a BrowserWindowProperties object, the width property specifies the desired width of a browser window.
opera.extension.windows.create()
The create() method provides a way to create a new browser window. When the create() method is invoked, the implementation must run the algorithm to create a window using tabs and properties as the argument, if provided.
opera.extension.windows.getAll()
The getAll() method provides a way to obtain a window collection. When the getAll() method is invoked, the implementation must return an array of BrowserWindow objects representing each browser window that is currently open.
opera.extension.windows.getLastFocused()
The getLastFocused() method provides a way to obtain the currently selected browser window, if any. The result depends on whether a browser window is open or not. If there are no open browser windows, null is returned, otherwise a BrowserWindow object is…
Windows & Tabs
A browser window is a graphical user-interface component that can contain zero or more browser tabs or browser tab groups. Each browser window has an associated tab collection and tab group collection. A browser window is the context window of each browser…
Converting widgets to Opera extensions: Things to keep in mind
This article will shed light on some things to keep in mind for Widgets developers when converting widgets into Opera Extensions. We recently announced that the sun is setting on our support for Widgets (and Unite) in upcoming versions of Opera, so this…
Making a move with CSS3 animations
Traditionally, the Web was a very static place. Achieving animations was not really possible in any sane way until JavaScript, animated GIFs and Flash came along, at which point we rejoiced and applauded the ensuing slew of skip intros and horrible obtrusive…
Opera电视商店应用程序的设计考虑
尽管电视商店的应用程序本质上也是网页,但开发者有必要了解在电视情境中,特别是Opera电视商店的模式上,设计上需要做的考虑。
HTML5 Drag and Drop
HTML5 includes the Drag and Drop API, which gives us the ability to natively drag, drop, and transfer data to HTML elements. Up until now, JavaScript libraries have commonly been used to achieve something similar, such as jQuery UI’s Draggable and Droppable…
Responsive web design: a project-management perspective
What strikes many people about responsive web design, the first time they hear about it, is the simplicity of the syntax. As Rich Quick said in his recent talk at Front Row to introduce the basic concepts:
Extensions come to Opera Mobile
When adding extensions support to our Presto engine back in 2010, a lot of time was spent behind the scenes so as to make our extensions framework very versatile and lightweight. Although the initial release was targeted for desktop only, every aspect of the…
Raw WebGL 101 — Part 1: getting started
WebGL allows you to create real 3D content and render it in a web browser. WebGL is the web implementation of OpenGL ES2 (Embedded Systems 2), and therefore allows us to run real 3D across any system with a browser that supports it and the graphics…
WordPress goes mobile: responsive design comes to CMSes
It seems that 2011 was the year in which great strides were made in terms of techniques for making websites render and perform better on mobile devices, but that 2012 will be the year when we all have to roll our sleeves up and get on with actually doing it.
Opera Mobile 12 for Android Ice Cream Sandwich MIPS tablet
With the popularity of Android, a vast number of people have been waiting with great anticipation to get a taste of Android version 4: Ice Cream Sandwich. For tablet fans, January 2012 saw great news. At the 2012 CES conference, the first tablet running…
Opera Mobile 12 for x86 architectures
At the Intel Developer Forum in September 2011, Opera unveiled a first demo build of Opera Mobile for Android running on an Intel Oak Trail-powered (Atom Z670) Green Ridge tablet with Ice Cream Sandwich OS installed. This marked the first public viewing of a…
A treat for Nokia N9 users - an official Opera Mobile 11.5 Labs release
Since our previous releases of Opera Mobile for MeeGo, we have noticed that a lot of our users have been hanging out for an official Opera Mobile build for the Nokia N9 and N950 Harmattan phones. Well, today is your lucky day — we're happy to announce that a…
Building applications for the Opera TV Store
The Opera TV Store is a moderated, hosted catalogue of TV-specific web applications. Developers can submit and share their apps through this portal. It presents end users with a storefront (itself a web-based application) which allows them quick and easy…
Functional key handling in Opera TV Store applications
The Opera TV Store is designed to use the standard four-way directional keys on a remote control for spatial navigation. Authors should test that their applications work correctly using the default spatial navigation built into the Opera TV Store browser.
HTML5 audio/video support in Opera TV Store applications
The Opera TV Store browser comes with built-in support for the HTML5 <audio> and <video> elements, allowing developers to include multimedia content in their applications without any need for plugin-based solutions.
64-Bit Opera, and Out-of-Process Plug-Ins
Update, November 22nd 2012: Please note that Opera 12.00 final shipped with 64-bit and OOPP support, and that as of version 12.02, OOPP is disabled for Windows 32-bit.
Design considerations for Opera TV Store applications
The Opera TV Store offers a platform for delivering HTML5-based applications to customers on TV.
HTTP — an application-level protocol
In Bhutan, when people meet, they usually greet each other with “Is your body well?” In Japan they might bow, depending on the circumstances. In Oman, men often add give each other a kiss on the nose after shaking hands. In Cambodia and Thailand, they often…
An Introduction to HTML5 web messaging
Web messaging is a way for documents in separate browsing contexts to share data without the DOM being exposed to malicious cross-origin scripting. Unlike other forms of cross-site communication (cross-domain XMLHttpRequest, or dynamic script insertion), web…
ECMAScript 5.1'e Giriş
ECMAScript 5.1 (yada sadece ES5) ECMAScript standardının — önergede JavaScript temel alınmıştır — en son gözden geçirimidir. HTML5 önergesinin sürecine benzer şekilde, ES5 varolan JavaScript kullanımlarını, dile ve ECMAScript nesnelerine olan eklemeleri…
getUserMedia: accessing the camera and privacy UI
In 2011, one of the most discussed aspects of HTML5 was whether web applications would "kill" native apps that are written for specific devices in platform-dependent languages. Two years ago, access to a device's Global Positioning System was only possible…