Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   script src и textContext (https://javascript.ru/forum/events/13045-script-src-i-textcontext.html)

KOLANICH 13.11.2010 21:12

script src и textContext
 
как получить содержимое тега скрипт,подгруженное через src

monolithed 13.11.2010 21:19

с помощью innerHTML пробовали?

KOLANICH 13.11.2010 21:23

не работает
выводит пустоту

ksa 13.11.2010 21:27

Если выводит и нет ошибки -таки работает. :)

Может примерчик приведешь? Чего хоть делаешь?

KOLANICH 13.11.2010 21:35

разбиираюсь с вебгл
<script id="frag" type="x-shader/x-fragment" src="shader.frag"></script>
<script id="vert" type="x-shader/x-vertex" src="shader.vert"></script>


console.log(document.getElementById("vert").innerHTML);//пустая строка


с яваскриптовыми то же самое

Gvozd 13.11.2010 21:47

вообще-то никак.
ибо безопасность!

KOLANICH 13.11.2010 21:57

почему?
они на том же домене!

Gvozd 13.11.2010 22:33

исправил свой пост
лично у меня не получилось добится этого.
времени я потратил на гугление достаточно.
и очевидные решение типа получения через DOM -также пробовал
а если скрипт на том же домене - почему бы его не получить через XHR?

KOLANICH 13.11.2010 22:35

я так и сделал, когда прочитал твой пост


function getShader(gl,addr,type,params) {
	var xhr= new XMLHttpRequest();
	xhr.open('POST', addr, false);//получение шейдера - синхронная операция
	xhr.send(params);
	if(xhr.status&&xhr.status != 200) {
		throw new Error("bad status code");
	}
	if(!type)type=xhr.getResponseHeader("content-type").split(";",1)[0];
	var source=xhr.responseText;
	if(!source)throw new Error("unable load shader");
	//console.log("shader is ",source);
	var shader;
	switch (type){
		case "x-shader/x-fragment":
		case "fragment":
			shader = gl.createShader(gl.FRAGMENT_SHADER);
		break;
		case "x-shader/x-vertex":
		case "vertex":
			shader = gl.createShader(gl.VERTEX_SHADER);
		break;
		default:
			throw new Error("bad shader type");
	}
	gl.shaderSource(shader, source);
	gl.compileShader(shader);
	if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {
		throw new Error(gl.getShaderInfoLog(shader));
	}
	return shader;
}


Часовой пояс GMT +3, время: 10:41.