2015-02-22 2 views
7

Я хотел бы попробовать вставить "асинхронный" атрибут в Prototype JavaScript script тега в Magento 1.9.1:атрибут HTML в Magento

<script type="text/javascript" src="http://www.mywebsite.com/media/js/ec1651c8b1a4ea49a916679f1e120ccf.js"></script> 

Я бы этот результат:

<script type="text/javascript" src="http://www.mywebsite.com/media/js/ec1651c8b1a4ea49a916679f1e120ccf.js" async></script> 

Где мне нужно вставить «async»? Что такое файл с этим кодом? Thanks

ответ

15

Посмотрите на файл app/design/frontend/<yourlayout>/<yourtheme>/layout/page.xml (или скопируйте app/design/frontend/base/default/layout/page.xml в свою тему).

Внутри этого файла, поиск по следующим направлениям:

<!-- ... --> 
<block type="page/html_head" name="head" as="head"> 
    <action method="addJs"><script>prototype/prototype.js</script></action> 
    <!-- ... --> 
</block> 
<!-- ... --> 

И изменить addJs призывам:

<!-- ... --> 
<block type="page/html_head" name="head" as="head"> 
    <action method="addJs"><script>prototype/prototype.js</script><params>async</params></action> 
    <!-- ... --> 
</block> 
<!-- ... --> 

Как ваши используют слияние Javascript особенность Magento, вам нужно применить это измените каждое определение addJs, потому что Magento будет группировать файлы по params.

+0

W3Shool говорит: Атрибут асинхронного только для внешних скриптов (и должен использоваться только тогда, когда атрибут SRC присутствует). Итак, почему вы хотите использовать его, если прототип локальный? – TonkBerlin

+0

@TonkBerlin Я предпочитаю ссылаться на [Mozilla Developer Network] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script) вместо W3School ;-) Думаю, что 'async 'имеют смысл только со скриптом, который имеет атрибут' src' (в противоположность встроенному скрипту). В этом случае prototype.js не включается в строку, но загружается браузером на основе атрибута 'src'. – GiDo

+0

Полезно ли загружать контент без функции, если .js не загружается? – TonkBerlin

0

Вы делаете небольшую ошибку. Это на самом деле правильный ответ на вопрос выше.

<!-- ... --> 
 
<block type="page/html_head" name="head" as="head"> 
 
    <action method="addJs"><script>prototype/prototype.js</script><params>async="async"</params></action> 
 
    <!-- ... --> 
 
</block> 
 
<!-- ... -->

+0

Нет, это неправильно! – TonkBerlin

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