Как вызвать кроссплатформенное (по крайней мере, IE и Chrome) всплывающее окно внутри SVG? - PullRequest
0 голосов
/ 15 октября 2010

У меня есть код, который генерирует SVG, который был разработан для IE и Adobe SVG Viewer. Adobe SVG Viewer имеет пользовательскую функцию под названием browserEval (см. http://www.xml.com/lpt/a/994), которая используется для того, чтобы браузер смог выполнить вызов window.open (). Это не работает в родном Chrome SVG-рендерере (и Я не пробовал Firefox).

Как я могу переписать эту всплывающую функцию для правильной работы во всех современных браузерах, поддерживающих 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')");
}

1 Ответ

0 голосов
/ 15 октября 2010

Похоже, вам не хватает ни одной кавычки перед словом "ширина", что является синтаксической ошибкой.

Кроме этого, очевидно, есть ошибка в browserEval, которая вызывает эту ошибку (http://tech.dir.groups.yahoo.com/group/svg-developers/message/9063). Вы пробовали function(x) { browserEval(x); } вместо browserEval?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...