小编car*_*ter的帖子

如何从网页调用Google Apps脚本

为此搜索过高低.我有一个基本HTML/CSS/JS的网页.我希望用户能够访问该页面,在打开页面时,会调用我制作的Google脚本,该脚本从电子表格中获取信息并在页面上显示一些信息.我希望我不必像谷歌的教程那样做任何花哨的设置,因为它们都没有对我有帮助.

我的网页----> Google脚本----> Google电子表格
我的网页<---- Google Script <---- Google电子表格

用户应该能够选择网页上显示的项目(从电子表格填充的项目),然后单击一个按钮,该按钮将允许用户输入包含从所选项目派生的URL的新页面.

这本质上是一个聊天室程序,聊天室存储在电子表格中.我希望用户能够创建一个新的聊天室,这应该更新谷歌电子表格.

javascript ajax google-apps-script

9
推荐指数
1
解决办法
1万
查看次数

jQuery从php json_encode解析/显示json数据

jquery中的初始.ajax调用:

$.ajax({                                      
 type: 'post',
 url: 'items_data.php',                  
 data: "id="+id,                                       
 dataType: 'json',                     
 success: function(data){     
  if(data){
   make_item_rows(data);
  }else{
   alert("oops nothing happened :(");
  }        
 } 
});     
Run Code Online (Sandbox Code Playgroud)

将简单的字符串发送到php文件,如下所示:

header('Content-type: application/json');
require_once('db.php');

if( isset($_POST['id'])){
 $id = $_POST['id'];
}else{
 echo "Danger Will Robinson Danger!";
}

$items_data = $pdo_db->query ("SELECT blah blah blah with $id...");
$result_array = $items_data->fetchAll();
echo json_encode($result_array);
Run Code Online (Sandbox Code Playgroud)

我正好抓住$ result_array并将其传递给另一个函数.我仔细检查确实返回了正确的值,因为我可以将结果回显到我的页面,它显示如下内容:

[{"item_id":"230","0":"230","other_id":"700"},{"item_id":"231","0":"231","other_id":"701"},{"item_id":"232","0":"232","other_id":"702"}]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚如何迭代结果,所以我可以将值注入我的HTML中的表中.这是我的功能:

function make_item_rows(result_array){  
 var string_buffer = "";
 $.each(jQuery.parseJSON(result_array), function(index, value){
  string_buffer += value.item_id; //adding many more eventually
  $(string_buffer).appendTo('#items_container');
  string_buffer = ""; //reset buffer after writing …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery json

4
推荐指数
1
解决办法
5万
查看次数

为什么我在.parseJSON之前必须使用JSON.stringify来自Google+ API的结果集?

我刚刚开始使用谷歌+ API,并搜索了文档.看起来很简单.根据谷歌,他们的API调用返回json.为什么在我在jQuery中调用键值之前解析json之前必须对json进行字符串化?以下是我正在使用的代码示例:

$.ajax({
    url: "https://www.googleapis.com/plus/v1/people/{user number}/activities/public?key={my api key}",
    data: {
        "maxResults": 20,
        "verb": "post"
    },
    dataType: "json",
    type: "get",
    success: function (data) {
        var num_actual_posts = 0;
        data = $.parseJSON(JSON.stringify(data));
        var listElements = $('ul#googleFeedUL li');

        for (var i = 0; i < data.items.length; i++) {
            if (data.items[i].verb == "post") {
                $(listElements[num_actual_posts]).append(data.items[i].object.content);
                num_actual_posts++;
                if (num_actual_posts > 5) {
                    break;
                }
            }
        }
    },
    error: function (e) {
        alert(e);
    }
});
Run Code Online (Sandbox Code Playgroud)

注意:我必须拨打20个帖子,因为当出于某种原因请求"post"动词时,用户所做的"份额"也会被返回.然后我在返回的json中查找实际帖子,以便仅显示真实帖子.文档似乎也没有告诉你如何通过解释json对象层次结构来提取数据,所以我只需要通过控制台跟踪它.'data.items [i] .object.content'是google +帖子的内容.

api jquery json google-plus

4
推荐指数
1
解决办法
5629
查看次数

导致"超出最大调用堆栈大小"的递归javascript函数

在设计工作中的小API并尽量使我的函数尽可能灵活的过程中,我决定开始添加是否传递参数的检查,然后基于此,做不同的事情.因此,当使用数字调用函数时,该函数将数字用作数组中的索引.如果没有传递数字,我希望函数调用自身的次数与数组的长度一样多.但是我得到了调用堆栈错误.我把问题归结为函数的递归方面,我将在下面列出.对我来说最奇怪的是......

这会导致错误

function testing(a){
    if(!a){
        for(var i = 0; i < 3; i += 1){
            testing(i);
        }
    }else{
        alert(a);
    }
}

testing();
Run Code Online (Sandbox Code Playgroud)

这不会导致错误

function testing(a){
    if(!a){
        for(var i = 0; i < 3; i += 1){
            testing(5);//Just adding hard coded number instead
        }
    }else{
        alert(a);
    }
}

testing();
Run Code Online (Sandbox Code Playgroud)

我试图理解为什么在调用中传递var会抛出错误.似乎如果js引擎可以在内存中保存初始函数调用以使for循环正常工作,为什么它在调用自身时不能保持对i的引用?我觉得我在这里缺少一些基本的东西.我尝试过很多涉及以下内容的重写:

testing(function(i){return i;}(i));
Run Code Online (Sandbox Code Playgroud)

一切都无济于事.这让我发疯,我想了解这里发生了什么.

javascript recursion

4
推荐指数
1
解决办法
2592
查看次数

将消息从后台脚本发送到内容脚本,然后在chrome扩展中响应

我正在尝试进行chrome扩展.我的后台脚本在ui按下按钮时触发.它应该向我的内容脚本发送一条消息,该脚本将响应发送回后台脚本.无法弄清楚这是如何工作的.点击侦听器正在触发,但消息传递不起作用.这是我到目前为止所得到的:

后台脚本:

$(document).on('click', '#getGlobalFuncsBtn', function(){
    chrome.extension.sendMessage({text:"getStuff"},function(reponse){       
        if(reponse.type == "test"){
            console.log('test received');
        }
    });
    console.log('click listener');
});
Run Code Online (Sandbox Code Playgroud)

内容脚本:

chrome.extension.onMessage.addListener(function(message,sender,sendResponse){
    if(message.text == "getStuff"){
        console.log('test sent');
        sendResponse({type:"test"});
    }
});
Run Code Online (Sandbox Code Playgroud)

弹出HTML:

<!DOCTYPE html>
<html>
<head>
</head>
<body>

<button id="getGlobalFuncsBtn">Get Global Funcs</button>

<script src="jquery-2.0.2.min.js"></script>
<script src="background.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

manifest.json的:

{
  "manifest_version": 2,

  "name": "Var Viewer",
  "description": "This extension allows you to view and change all user defined js global vars.",
  "version": "1.1",
  "permissions": [
    "storage"
  ],
  "content_scripts": [
    {
      "matches": ["http://*/*", "https://*/*"],
      "js": ["jquery-2.0.2.min.js","content.js"]
    } …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

0
推荐指数
1
解决办法
7552
查看次数