在这篇文章中,我们将为您详细介绍javascript–BraintreeDrop-InUI需要重新加载才能正常工作的内容,并且讨论关于js页面重新加载一次的相关问题。此外,我们还会涉及一些关于AJAX
在这篇文章中,我们将为您详细介绍javascript – Braintree Drop-In UI需要重新加载才能正常工作的内容,并且讨论关于js页面重新加载一次的相关问题。此外,我们还会涉及一些关于AJAX返回的JavaScript无法正常工作。如何使用JavaScript?、AJAX返回的JavaScript无法正常工作如何使用JavaScript?、Bootstrap javascript或popover无法正常工作、grails – Controller @Mixin在重新编译运行应用程序后才能正常工作的知识,以帮助您更全面地了解这个主题。
本文目录一览:- javascript – Braintree Drop-In UI需要重新加载才能正常工作(js页面重新加载一次)
- AJAX返回的JavaScript无法正常工作。如何使用JavaScript?
- AJAX返回的JavaScript无法正常工作如何使用JavaScript?
- Bootstrap javascript或popover无法正常工作
- grails – Controller @Mixin在重新编译运行应用程序后才能正常工作
javascript – Braintree Drop-In UI需要重新加载才能正常工作(js页面重新加载一次)
我刚刚开始使用Braintree插件用户界面.客户端是javascript,服务器端是ruby on rails.
我的系统现在非常简单.向用户提供与其相关的发票列表.当发票尚未付款时,他们可以点击“付款”并转到包含Braintree Drop-In UI的新页面.我的问题是:当用户进入“付费”页面时,不会显示插入式用户界面.如果用户重新加载页面,则会显示插入式UI.
为什么?
这是一些相关的代码.这是非常香草,还没有完成 – 只是粗暴对待.
来自发票/ index.html.erb
<td>
<% if invoice.paid %>
<%= 'Paid' %>
<% else %>
<%= link_to 'Pay', payment_path(invoice.id) %>
<% end %>
</td>
来自payments_controller:
class PaymentsController < ApplicationController
skip_before_action :verify_authenticity_token
before_action :set_invoice, only: [:pay, :checkout]
def pay
Braintree::Configuration.environment = :sandBox
Braintree::Configuration.merchant_id = 'merchant id'
Braintree::Configuration.public_key = 'public key'
Braintree::Configuration.private_key = 'private key'
gon.client_token = Braintree::ClientToken.generate()
end
def checkout
nonce = params[:payment_method_nonce]
result = Braintree::Transaction.sale :amount => @invoice.amount, :payment_method_nonce => "nonce-from-the-client"
if result.success?
message='Payment processed successfully. Thank you!'
@invoice.paid=true
@invoice.save
else
message='Unable to process payment. Reason = ' + result.message
end
redirect_to invoices_path, notice: message
end
private
def set_invoice
@invoice = Invoice.find(params[:id])
end
end
pay.html.erb:
<h1>Payments</h1>
<div>
<p>Invoice #: <%= @invoice.id %></p>
<p>Date: <%= @invoice.date %> </p>
<p>Description: <%= @invoice.description %> </p>
<p>Amount: <%= @invoice.amount %> </p>
</div>
<divhttps://www.jb51.cc/tag/Box/" target="_blank">Box glassy-bg small-10 small-centered medium-8 large-6 columns">
<h2>New Transaction</h2>
<%= form_tag payments_checkout_path do%>
<%= hidden_field_tag 'id', @invoice.id %>
<p>Please enter your payment details:</p>
<div id="dropin"></div>
<%=submit_tag "Pay #{@invoice.amount}$", class: "button mt1" %>
<%end%>
</div>
和layouts / application.html.erb
<!DOCTYPE html>
<html>
<head>
<title>Actionable Software</title>
<%= include_gon %>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_Meta_tags %>
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<Meta name='viewport' content='width=device-width, initial-scale=1.0'>
</head>
<body>
<%= render 'layouts/header' %>
<div>
<% flash.each do |name, msg| %>
<%= content_tag(:div, msg, class: "alert alert-info") %>
<% end %>
<%= yield %>
</div>
</body>
</html>
解决方法:
我将猜测填充该元素的脚本不是以与Turbolinks一起使用的方式编写的.
尝试opting that page or section out of turbolinks.或者只是完全禁用它,看它是否修复它.
AJAX返回的JavaScript无法正常工作。如何使用JavaScript?
这是我的页面Test1.asp
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script type="text/javascript">
function Alex()
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest(); }
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById("Alex").innerHTML =xmlHttp.responseText;//Get Google Destination Map
}
}
xmlHttp.open("GET","Test2.asp",true);
xmlHttp.send(null);
}
</script>
</head>
<body>
<div id ="Alex"></div>
<label onclick="Alex()" >ssss</label>
</body>
</html>
这是请求页面Test2.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<body>
<div id="Mathew"></div>
</body>
<script type="text/javascript" >
{
document.getElementById("Mathew").innerHTML='ajax is working';
}
</script>
</html>
在页面(Test2.asp)中,javascript无法正常工作
我如何使用Ajax将test2.asp调用到我的test1.asp
AJAX返回的JavaScript无法正常工作如何使用JavaScript?
这是我的页面Test1.asp
<html>
<head>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
<script type="text/javascript">
function Alex()
{
var xmlHttp;
try
{
xmlHttp=new XMLHttpRequest(); }
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Your browser does not support AJAX!");
return false;
}
}
}
xmlHttp.onreadystatechange=function()
{
if(xmlHttp.readyState==4)
{
document.getElementById("Alex").innerHTML =xmlHttp.responseText;//Get Google Destination Map
}
}
xmlHttp.open("GET","Test2.asp",true);
xmlHttp.send(null);
}
</script>
</head>
<body>
<div id ="Alex"></div>
<label onclick="Alex()" >ssss</label>
</body>
</html>
这是请求页面Test2.asp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>New Page 1</title>
</head>
<body>
<div id="Mathew"></div>
</body>
<script type="text/javascript" >
{
document.getElementById("Mathew").innerHTML='ajax is working';
}
</script>
</html>
在页面(Test2.asp)中,javascript无法正常工作
我如何使用Ajax将test2.asp调用到我的test1.asp
Bootstrap javascript或popover无法正常工作
这个在JSfiddle上正常工作的小代码只是创建一个Button(没有悬停功能),如果在我的源代码中使用的话.
Modal-Plugin实际上正在工作,所以这应该意味着我以正确的方式包含js文件.无论如何我会复制它:
<script src="js/bootstrap.min.js"></script> <script src="http://code.jquery.com/jquery-latest.js"></script>
解决方法
您应该按此顺序加入:
> jQuery
> Bootstrap
>你的Javascript
编辑:在关闭正文标记之前尝试此操作
<script src="http://code.jquery.com/jquery-latest.js"></script> <script src="js/bootstrap.min.js"></script> <script> $(function(){ $('#test').popover(); }); </script>
此外,控制台是你的朋友.检查并确保没有错误.
解决了:
解决方案:>包含的正确顺序>修复我从js控制台得到的错误.
grails – Controller @Mixin在重新编译运行应用程序后才能正常工作
如果在控制器内进行一些更改以强制重新编译控制器,则mixin正在工作.在初始编译(grails run-app)之后,助手没有混入 – 我得到一个MissingMethodException试图从助手类访问一个方法.
这是src / groovy的助手:
class ProjectHelper { def withProject(id,Closure c) { def project = Project.get(id) if (project) { c.call project } else { flash.message = ''Project not found!'' render view: ''myView'' return } } }
和(其中一个)使用ProjectHelper的控制器:
@Mixin(ProjectHelper) class ProjectController { def index() { withProject params.projectId,{project -> // do something with the project } } }
当我使用grails clean清理项目并启动应用程序时,访问项目/索引后出现以下错误:
MissingMethodException occurred when processing request: [GET] /<myApp>/project/ No signature of method: <myPackage>.withProject() is applicable for argument types: (java.lang.String,<myPackage>.ProjectController$_index_closure1_closure10) values: [1,<myPackage>.ProjectController$_index_closure1_closure10@40d889b5]
在ReportController中进行一些更改(例如添加单个空格)之后,grails会编译2个源文件,并且可以使用带有Project的方法.访问项目/索引按预期工作.
这里出了什么问题?这是一个错误还是我错过了什么?
更新
事实证明,我完全错过了,使用grails.util.Mixin给了我另一个异常(MissingPropertyException),因为缺少对混合类属性的访问(在我的情况下:flash)(参见JIRA this issue),它正在使用groovy. lang.Mixin(重新编译后).
有没有办法在运行时手动重新编译/注入/混合groovy.lang.Mixin,或者我必须找到else部分的另一个错误处理,直到问题得到解决?
有什么建议?
解决方法
在我的例子中,将groovy.lang.Mixin更改为grails.util.Mixin(或者更具体地说,将grails.util.Mixin的导入添加到我的控制器)可以完全解决问题.
至于无法访问控制器变量,您可能会等待GRAILS-9905被解决.我应该注意到,在缺陷讨论中列出了一些建议的解决方法.
关于javascript – Braintree Drop-In UI需要重新加载才能正常工作和js页面重新加载一次的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于AJAX返回的JavaScript无法正常工作。如何使用JavaScript?、AJAX返回的JavaScript无法正常工作如何使用JavaScript?、Bootstrap javascript或popover无法正常工作、grails – Controller @Mixin在重新编译运行应用程序后才能正常工作的相关信息,请在本站寻找。
本文标签: