Windows 8 限制了您可以通过 innerHTML 和 Writeln 设置的内容,因为它被认为是不安全的...
添加内容的正确方法是:
// The untrusted data contains unsafe dynamic content
var unTrustedData = "<img src='http://www.contoso.com/logo.jpg' on-click='calltoUnsafeCode();'/>";
// Safe dynamic content can be added to the DOM without introducing errors
var safeData = window.toStaticHTML(unTrustedData);
// The content of the data is now
// "<img src='http://www.contoso.com/logo.jpg'/>"
// and is safe to add because it was filtered
document.write(safeData);
如果你的代码有一些 javascript,你可以使用这个函数(但微软不推荐它):
MSApp.execUnsafeLocalFunction(function() {
var body = document.getElementsByTagName('body')[0];
body.innerHTML = '<div style="color:' + textColor + '">example</div>';
});
见:
http://msdn.microsoft.com/en-us/library/windows/apps/Hh767331.aspx
对于您的情况:
MSApp.execUnsafeLocalFunction(function() {
document.writeln(foo());
});
请注意,只有在您了解您的内容是安全的情况下,您才应该这样做;如果您不这样做,我建议您使用该toStaticHTML
方法。