2010-10-14 49 views
0

我有用于生成为IE和Adobe SVG查看器开发的SVG的代码。 Adobe SVG Viewer具有一个名为browserEval(请参阅http://www.xml.com/lpt/a/994)的自定义函数,用于使浏览器评估window.open()调用。这在Chrome的本地SVG渲染器中不起作用(并且我没有尝试Firefox)。如何从SVG内部导致跨平台(至少IE和Chrome)弹出窗口?

如何重写此弹出窗口功能以在所有现代SVG支持的浏览器中正常工作?在IE浏览器而不是Chrome的这种原始的作品之一:

function popUp(loc) { 
    browserEval("window.open('"+loc+"','_blank', 
     'width=1000,height=780,scrollbars=yes,resizable=yes, 
     status=no,toolbar=no,menubar=no,location=no')"); 
} 

我想这里面在Chrome的工作,但会导致有关IE浏览器的参数的数目错误:

var browserEvalCrossBrowser = (typeof(browserEval)=='undefined') ? 
    function(x) { eval(x); } : browserEval; 

function popUp(loc) { 
    browserEvalCrossBrowser("window.open('"+loc+"','_blank', 
     'width=1000,height=780,scrollbars=yes,resizable=yes, 
     status=no,toolbar=no,menubar=no,location=no')"); 
} 
+0

其他东西看起来像一个错误:您的双引号中的字符串是多行,这是不允许的。 – some 2010-10-14 22:17:03

回答

0

它看起来像你缺少一个在单词“width”之前引用,这是一个语法错误。

除此之外,显然browserEval中存在一个导致此错误的错误(http://tech.dir.groups.yahoo.com/group/svg-developers/message/9063)。你试过function(x) { browserEval(x); }而不是browserEval

+0

这是一个转录错误,它在代码中是正确的。感谢您指出,我会纠正它。 – 2010-10-14 21:39:04