gpt4 book ai didi

javascript - 使用 Google 图片搜索 API 时出现奇怪的 javascript 错误

转载 作者:行者123 更新时间:2023-12-02 20:35:34 25 4
gpt4 key购买 nike

我正在尝试从 this page 复制 Google 图片搜索。这是我的代码:

<script type="text/javascript">
<% if @note.text == "" %>
google.load("search", "1",{"callback":searchCallback()});
<% else %>
google.load("visualization", "1",{"callback":dummyFunction});
<% end %>

function se() {
var sFormDiv = document.getElementById("searchForm");
var leftScDiv = document.getElementById("leftSearchControl");

this.leftControl = new google.search.SearchControl();
this.searchForm = new google.search.SearchForm(true, sFormDiv);

this.searchForm.setOnSubmitCallback(this, se.prototype.onSubmit);
this.searchForm.setOnClearCallback(this, se.prototype.onClear);

this.leftControl.setResultSetSize(GSearch.LARGE_RESULTSET);

var searcher;
var options;

this.leftControl.addSearcher(new google.search.ImageSearch());

var drawOptions = new google.search.DrawOptions();
drawOptions.setDrawMode(GSearchControl.DRAW_MODE_TABBED);

this.leftControl.setNoResultsString(GSearchControl.NO_RESULTS_DEFAULT_STRING);

this.leftControl.draw(leftScDiv);

this.searchForm.execute("Ferrari");

}

// when the form fires a submit, grab its
// value and call the left and right control
se.prototype.onSubmit = function(form) {
var q = form.input.value;
if (q && q!= "") {
this.leftControl.execute(q);
}
return false;
}

// when the form fires a clear, call the left and right control
se.prototype.onClear = function(form) {
this.leftControl.clearAllResults();
form.input.value = "";
return false;
}

function searchCallback(){
new se();
}

function dummyFunction() {
}

</script>

当我运行它时,我收到此错误:

google.search is undefined
this.leftControl = new google.search.SearchControl();

如果我通过加载搜索 API 时运行的回调到达该行,这怎么可能?感谢您的阅读。

最佳答案

How can this be, if I'm getting to that line by way of the callback that is run when the search API is loaded? Thanks for reading.

您不是传递回调,而是通过在函数后面放置 () 来立即调用该函数。 searchCallback() 依次调用 se(),后者尝试调用 google.search.SearchControl,但 google.search > 此时未定义,在 undefined 上调用任何属性或函数都会抛出 TypeError

替换

google.load("search", "1",{"callback":searchCallback()});

google.load("search", "1",{"callback":searchCallback});

关于javascript - 使用 Google 图片搜索 API 时出现奇怪的 javascript 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3328480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com