"SET @sql = N ', если не существует (выберите * из sys.sql_logins, где name = @Databaseowner)' + N 'CREATE LOGIN' + QUOTENAME (@Databaseowner) + N '' 'С ПАРОЛЕ =' + QUOTENAME (@Databaseownerpass, '' '') + N ';'; "
как добавить check_policy = off в строке выше?
Вам, возможно, понадобится к оценке содержание тега script. Это потребовало бы, чтобы парсинг нашел сценарии в Вашем jsVar и оценку (whatsBetweenTheScriptTags).
Так как IE отказывается вставлять содержание по умолчанию, необходимо будет выполнить его сами, но можно, по крайней мере, обмануть IE в выполнение парсинга для Вас.
Просто используйте string.replace()
подкачивать весь <script>
теги для <textarea class="myScript" style="display:none">
, сохранение содержания. Затем засуньте результат в innerHTML
из отделения.
После того, как это сделано, можно использовать
div.getElementsByTagName("textarea")
получить все текстовые области, цикл через них и искать Ваш класс маркера ("myScript"
в этом случае), и также eval(textarea.value)
или (new Function(textarea.value))()
те Вы заботитесь о.
Это - то, как мы сделали это на нашем сайте приблизительно год назад для получения его работающий в IE. Вот шаги:
function set_html( id, html ) { // create orphan element set HTML to var orphNode = document.createElement('div'); orphNode.innerHTML = html; // get the script nodes, add them into an arrary, and remove them from orphan node var scriptNodes = orphNode.getElementsByTagName('script'); var scripts = []; while(scriptNodes.length) { // push into script array var node = scriptNodes[0]; scripts.push(node.text); // then remove it node.parentNode.removeChild(node); } // add html to place holder element (note: we are adding the html before we execute the scripts) document.getElementById(id).innerHTML = orphNode.innerHTML; // execute stored scripts var head = document.getElementsByTagName('head')[0]; while(scripts.length) { // create script node var scriptNode = document.createElement('script'); scriptNode.type = 'text/javascript'; scriptNode.text = scripts.shift(); // add the code to the script node head.appendChild(scriptNode); // add it to the page head.removeChild(scriptNode); // then remove it } } set_html('ph', 'this is my html. alert("alert");');
Я не уверен в MooTools, но Вы попробовали innerHTML?
document.getElementById ("заполнитель") .innerHTML = jsVar;
Это сообщение MSDN конкретно обращается, как использовать innerHTML для вставки JavaScript в страницу. Вы правы: IE действительно считает это проблемой безопасности, поэтому требует, чтобы Вы перешли через определенные обручи для введения сценария..., по-видимому, хакеры могут прочитать это сообщение MSDN, а также мы можем, таким образом, я в замешательстве относительно того, почему MS считает этот дополнительный слой косвенности "безопасным", но я отступаю.
Из статьи MSDN:
<HTML>
<SCRIPT>
function insertScript(){
var sHTML="<input type=button onclick=" + "go2()" + " value='Click Me'><BR>";
var sScript="<SCRIPT DEFER>";
sScript = sScript + "function go2(){ alert('Hello from inserted script.') }";
sScript = sScript + "</SCRIPT" + ">";
ScriptDiv.innerHTML = sHTML + sScript;
}
</SCRIPT>
<BODY onload="insertScript();">
<DIV ID="ScriptDiv"></DIV>
</BODY>
</HTML>
Если вообще возможный, можно хотеть рассмотреть использование a document.write
введенный сценарий, загружающий тег, чтобы увеличить безопасность и уменьшить несовместимость перекрестного браузера. Я понимаю, что это не может быть возможно, но это достойно рассмотрения.
Я никогда не пробовал его, это просто прибыло по моему мнению... Можете Вы пробовать следующее:
var script = document.createElement('script');
script.type = 'text/javascript';
script.innerHTML = '//javascript code here'; // not sure if it works
// OR
script.innerText = '//javascript code here'; // not sure if it works
// OR
script.src = 'my_javascript_file.js';
document.getElementById('placeholder').appendChild(script);
Можно использовать ту же технику (DOM) для вставки разметки HTML.
Когда Вы говорите, что это "работает" в тех других браузерах, сделайте Вы подразумеваете, что добираетесь alert
всплывающее сообщение, или делают Вас, просто означают <script>
тег превращает его в дерево DOM?
Если Ваша цель - первый, поймите что поведение введения HTML со встроенным <script>
очень зависимо от браузера. Например, в последнем MooTools я могу попробовать:
$(element).set('html', '<strong>Foo</strong><script>alert(3)</script>')
и я не получаю всплывающее окно, не в IE (7), не в FF (3) (однако, я действительно добираюсь <script>
узел в DOM успешно). Получить его к alert
во всех браузерах необходимо сделать, как этот ответ делает.
Добавьте его в webconfig
add verb = "GET, HEAD" path = "ChartImg.axd" type = "System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System. Web.DataVisualization, Версия = 3.5.0.0, Культура = нейтральный, PublicKeyToken = 31bf3856ad364e35 "
Спасибо
Basanth
Вы используете фреймворк , а не , чтобы заново изобретать велосипед ...Что касается «другого» контента, как вы его получаете? если через класс Request, он может делать то, что вы хотите, используя следующие параметры:
{
update: $("targetId"),
evalScripts: true,
evalResponse: false
}