2011-01-06 3 views
0

Вопрос только для IE7, поскольку файл location.replace (strURL), похоже, работает во всех других основных браузерах. Я пытаюсь выполнить некоторые аналитики js, а затем перенаправить пользователей на местоположение ресурса (обычно doc или pdf), который они хотят загрузить. Пользователь открывает страницу, содержащую код js. После загрузки гусеничный Broswer должен загрузить resurouce URL, используя следующий код, ЗАМЕНА текущей записи страницы в истории с URL ресурса:Открыть новую страницу в том же окне браузера, не влияя на историю браузера

if (IE) { 
      window.open(strURL,"_self", true); //doesn't work 
      //window.open(strURL,"_self",undefined, true); //doesn't work 
      return; 
     } 

Этот код создает запись в истории для страницы перенаправления. Я попытался использовать iframe на той же странице, но IE выдает предупреждение о безопасности, если файл является * .doc

Любые идеи?

+0

Вы потеряли меня в «Пользователь открывает ...». – DanMan

ответ

0

Я не уверен, есть ли способ избежать этого в IE7 или нет. Возможно, возможен другой подход. Внесите аналитику js на текущую страницу перед перенаправлением, тем самым избегая необходимости загружать другую страницу в целом. В этом подходе вы создадите новый тег сценария и введете его в элемент head. Сценарий будет выполняться при загрузке, выполнять ваши аналитики и затем запускать перенаправление для загрузки в качестве последнего шага (например).

function redirectWithAnalytics() { 
    var s = document.createElement('script'); 
    s.src = 'path/to/analytics.js'; 
    s.type = 'text/javascript'; 
    document.getElementsByTagName('HEAD')[0].appendChild(s); 
} 
+0

К сожалению, это невозможно в моем случае. Я не знаю, нажал ли пользователь ссылку на скачивание до тех пор, пока я не совершу поездку в базу данных, потому что запрос проходит через общий обработчик ресурсов, который обслуживает запросы для различных файлов, включая изображения сайта. Поэтому решение о том, следует ли вводить сценарий отслеживания, будет стоить еще одной поездки на сервер. В любом случае, я делаю что-то неправильно с методом window.open. Я не могу найти кого-либо другого с такой же или подобной проблемой, из-за чего я думаю, что я могу сделать что-то неправильно? –

+0

Почему бы не сделать src скрипта скриптом serveride, который выполняет проверку базы данных, и при необходимости вернуть код аналитики, в противном случае вернуть пустую строку или вызов какой-либо другой функции, чтобы уведомить пользователя о том, что они не нажимали кнопку действительная ссылка? –

Смежные вопросы