nombradas - Devuelve contenido HTML como una cadena, URL dada. Función Javascript
llamar a funcion en javascript (3)
Quiero escribir una función de JavaScript que devuelva contenido HTML como cadena de URL dada a la función. Encontré una respuesta similar en Stackoverflow.
Estoy tratando de usar esta respuesta para resolver mi problema.
Sin embargo, parece que document.write()
no está escribiendo nada. Cuando cargo la página, aparece una pantalla en blanco.
<html>
<head>
</head>
<body>
<script type="text/JavaScript">
function httpGet(theUrl)
{
var xmlHttp = null;
xmlHttp = new XMLHttpRequest();
xmlHttp.open( "GET", theUrl, false );
xmlHttp.send( null );
return xmlHttp.responseText;
}
document.write(httpGet("https://stackoverflow.com/"));
</script>
</body>
</html>
El único que he encontrado para Cross-site es esta función:
<script type="text/javascript">
var your_url = ''http://www.example.com'';
</script>
<script type="text/javascript" src="jquery.min.js" ></script>
<script type="text/javascript">
// jquery.xdomainajax.js ------ from padolsey
jQuery.ajax = (function(_ajax){
var protocol = location.protocol,
hostname = location.hostname,
exRegex = RegExp(protocol + ''//'' + hostname),
YQL = ''http'' + (/^https/.test(protocol)?''s'':'''') + ''://query.yahooapis.com/v1/public/yql?callback=?'',
query = ''select * from html where url="{URL}" and xpath="*"'';
function isExternal(url) {
return !exRegex.test(url) && /://///.test(url);
}
return function(o) {
var url = o.url;
if ( /get/i.test(o.type) && !/json/i.test(o.dataType) && isExternal(url) ) {
// Manipulate options so that JSONP-x request is made to YQL
o.url = YQL;
o.dataType = ''json'';
o.data = {
q: query.replace(
''{URL}'',
url + (o.data ?
(//?/.test(url) ? ''&'' : ''?'') + jQuery.param(o.data)
: '''')
),
format: ''xml''
};
// Since it''s a JSONP request
// complete === success
if (!o.success && o.complete) {
o.success = o.complete;
delete o.complete;
}
o.success = (function(_success){
return function(data) {
if (_success) {
// Fake XHR callback.
_success.call(this, {
responseText: data.results[0]
// YQL screws with <script>s
// Get rid of them
.replace(/<script[^>]+?//>|<script(.|/s)*?//script>/gi, '''')
}, ''success'');
}
};
})(o.success);
}
return _ajax.apply(this, arguments);
};
})(jQuery.ajax);
$.ajax({
url: your_url,
type: ''GET'',
success: function(res) {
var text = res.responseText;
// then you can manipulate your text as you wish
alert(text);
}
});
</script>
después de obtener la respuesta simplemente llame a esta función para agregar datos a su elemento del cuerpo
function createDiv(responsetext)
{
var _body = document.getElementsByTagName(''body'')[0];
var _div = document.createElement(''div'');
_div.innerHTML = responsetext;
_body.appendChild(_div);
}
Código @satya modificado de la siguiente manera
function httpGet(theUrl)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
createDiv(xmlhttp.responseText);
}
}
xmlhttp.open("GET", theUrl, false);
xmlhttp.send();
}
necesita regresar cuando el estado de listo == 4 por ej.
function httpGet(theUrl)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
return xmlhttp.responseText;
}
}
xmlhttp.open("GET", theUrl, false );
xmlhttp.send();
}