chrome-app won't recognize id's that work fine when run by the chrome browser-Collection of common programming errors

As lostsource mentioned, you’re probably accessing the wrong DOM’s document. You should think about the javascript in your app running in different global contexts, one for each page. There is (at a minimum) a page for the background page, and a page for each window.

Each of these pages runs in its own global context. This means global variables like document and window are different.

In the background page will be scripts which you load via the background manifest tag. When you open a window, it can also load its own script via script tags (make sure you do not use inline or block script tags, but use script src="foo.js". See http://developer.chrome.com/apps/contentSecurityPolicy.html).

The code that runs in the callback to chrome.app.window.create runs in the background page’s context, so its document variable is for the background page’s DOM, which is usually empty. Instead you can make it refer to the window’s DOM using win.contentWindow as lostsource suggested, or add a page.js file with the script in it, and include it from the page via a script src='page.js' tag.