Я создаю динамические сайты с той же кодовой базой, где мне нужно будет отображать соответствующий код JavaScript рекламных объявлений Google, основываясь на некоторой логике.
В моей среде .Net 4, MVC3 я настроил следующий сценарий:
Переход на www.mysite.com/script_processor/ возвращает следующий текст:
function doAlert(v1, v2){alert('Called alert()' + v1 + ' : ' + v2);}
Этот текст взят из моей модели как таковой:
page.stringResponse = "function doAlert(v1, v2){alert('Called alert()' + v1+ ' : ' + v2);}";
Затем я могу сделать что-то подобное с отдельного сайта / страницы:
<script type="text/javascript" src="http://mysite.com/script_processor/">
</script>
<script type="text/javascript">
doAlert('string 1', 'string 2');
</script>
Как и следовало ожидать, яполучите окно с предупреждением «Called alert () string 1: string 2», чтобы функция на mysite.com была доступна с сайта 2.
Очевидно, что когда я делаю источник просмотра на странице, я вижу тольковызов doAlert (), а не содержимое функции, которая находится на mysite.com.
Теперь вместо doAlert () на mysite.com я хочу иметь функцию, которая динамически записывает javascript, которыйКогда он будет вызван, на сайте 2 будет отображаться значок.
Я создал метод модели:
public GetResponsePage GetPageResponse(string V1, string V2)
{
var page = new GetResponsePage();
page.stringResponse = "<script type=\"text/javascript\">document.write('testing injected Javascript.');alert('value of v1: " + V1 + "value of v2: " + V2 + "');</script>";
return page;
}
При переходе к маршруту я вижу всплывающее окно и "тестирование внедряет Javascript."на странице.
Когда я ссылаюсь на это с сайта 2, я не вижу всплывающего окна и не вижу "тестирования внедренного Javascript" в источнике страницы.
Как я уже упоминал, япозже заменит это на JS-код для соответствующего js-кода Google Ads.
Не думаю, что это работает совершенно правильно ... что мне не хватает?
Спасибо.