Skip to content

Instantly share code, notes, and snippets.

Revisions

  1. jasonweng revised this gist Dec 5, 2013. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion Get contents of link tag with javascript - not CSS
    Original file line number Diff line number Diff line change
    @@ -4,7 +4,7 @@ var your_url = 'http://www.example.com';

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js" ></script>
    <script type="text/javascript">
    // jquery.xdomainajax.js ------ from padolsey


    jQuery.ajax = (function(_ajax){

  2. jasonweng created this gist Dec 5, 2013.
    85 changes: 85 additions & 0 deletions Get contents of link tag with javascript - not CSS
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,85 @@
    <script type="text/javascript">
    var your_url = 'http://www.example.com';
    </script>

    <script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/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>