如何从“”运行url;.js”;文件

How to run url from ".js" file?

本文关键字:js 文件 url 运行      更新时间:2023-09-26

环境:Visual Studio 2012、MVC4、Razor、Internet应用程序。我正在使用易趣API,我想显示搜索结果(JSON)。我有一个包含代码的查看页面。。。

<script>
function _cb_findItemsByKeywords(root)
{
  var items = root.findItemsByKeywordsResponse[0].searchResult[0].item || [];
  var html = [];
  html.push('<table width="100%" border="0" cellspacing="0" cellpadding="3"><tbody>');
  for (var i = 0; i < items.length; ++i)  
  {
    var item     = items[i];
    var title    = item.title;
    var pic      = item.galleryURL;
    var viewitem = item.viewItemURL;
    if (null != title && null != viewitem)
    {
      html.push('<tr><td>' + '<img src="' + pic + '" border="0">' + '</td>' + 
        '<td><a href="' + viewitem + '" target="_blank">' + title + '</a></td></tr>');
    }
  }
  html.push('</tbody></table>');
  document.getElementById("results").innerHTML = html.join("");
}
</script>

".js"文件中的这一行:

var url = "http://ebay.com?..."

当我打开这个视图页面时,我如何从".js"文件自动执行这个url?(此url将请求发送到易趣服务器并接收数据,这些数据将显示在此查看页面上。)

我会稍微改变一个问题。。。如果我在View页面上运行这段代码,一切都很好:

<script src=http://ebay.com?... </script>

我如何接收此部分("http://ebay.com?..."作为变量)?有可能吗?

如果您只想发送请求,您可以向DOM添加一个图像,例如src

如果你想从请求中接收数据,你必须进行AJAX调用。这在不同的浏览器中处理方式非常不同,所以这里有一个使用框架的好主意,比如jQuery。

然而,由于URL位于与您不同的域上,您将无法通过常规AJAX请求访问它。您必须参考所谓的JSONP请求。这要求您提取的文档以特定的方式进行格式化,以允许这样做。如果没有,JavaScript就不允许这种交互,因为同源策略。

JSONP要求远程文档具有以下格式:

someCallbackFunction(javaScriptObjectWithData);

如果是这样,您就可以将一个脚本文件包含到DOM中,该URL作为src,文档的内容一旦被提取,就会立即在浏览器中执行。到那时,您应该已经指定了一个回调函数,其名称与文档中进行的回调相匹配(这通常是您可以通过原始请求中的查询字符串指定的)。

如果由于远程文档的格式原因,这些选项都不可用,那么您将不得不从服务器端请求文档。如果您自己无法访问服务器端环境,为了做到这一点,可以选择使用其他人的服务器。雅虎的自定义查询语言YQL可以用于查询远程文档的内容,并且YQL可以通过JSONP获得,因此您可以通过它们转发您的请求。

请参阅这篇关于将YQL与JSONP 一起使用的文章


更新,现在您添加了更多数据,易趣API可用于JSONP,我认为这就是您正在寻找的解决方案。

已解决。。。

<script src="/Scripts/ebay.js" type="text/javascript"></script>
<script>
    s = document.createElement( 'script' );
    s.src = url;
    document.body.appendChild( s );
</script>