小编ape*_*ure的帖子

使用postmessage刷新iframe的父文档

我有一个greasemonkey脚本,它打开一个iframe,其中包含来自不同子域的表单作为父页面.

我希望在表单提交后iframe刷新时刷新父页面

我在iframe刷新时可以执行函数,但是我无法使该函数影响父文档.

我明白这是由于浏览器安全模型,我一直在阅读使用postMessage在两个窗口之间进行通信,但我似乎无法弄清楚如何使用它向父级发送重新加载调用.

关于如何做到这一点的任何建议将非常有用,

谢谢

iframe parent cross-domain

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

区分click vs mousedown/mouseup

我已经阅读了有关这种情况的stackoverflow的几个答案,但没有一个解决方案正在运行.

我试图根据用户是否单击一个元素来做不同的事情,或者使用jQuery将鼠标按住该元素.

有可能做到这一点吗?

jquery

21
推荐指数
3
解决办法
4万
查看次数

Android:在asynctask期间处理后退按钮

我有一个显示列表视图的活动.在项目单击时,将启动第二个活动,该活动运行AsyncTask,该AsyncTask根据单击的项目获取远程URL,解析结果,然后将这些结果显示到另一个列表视图中.当异步任务正在运行时,我有一个"加载"视图,只显示图像和文本.问题是,如果我启动运行异步任务的活动,然后按回并启动所述活动的另一个实例,我会关闭一个力.

我试过了

private class getlist extends AsyncTask implements OnDismissListener{
     ...
     @Override
     public void onDismiss(DialogInterface arg0) {
          this.cancel(true);
     }
}

但问题仍然存在.

我也放了

if(!isCancelled()){
  setContentView(R.layout.list);
  ...
  etc.

}

进入我的onPostExecute调用,但这不是阻止视图切换,或问题是其他问题.

logcat显示"已经恢复时意外恢复..得到RemoteException发送setActive(false)通知"然后在日志中进一步向下,"java.net.SocketTimeoutException:Socket未连接"

我该如何解决这个问题?

更新:

E/AndroidRuntime(19379): Uncaught handler: thread AsyncTask #2 exiting due to uncaught exception
E/AndroidRuntime(19379): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(19379):        at android.os.AsyncTask$3.done(AsyncTask.java:200)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(19379):        at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(19379):        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
E/AndroidRuntime(19379):        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
E/AndroidRuntime(19379):        at java.lang.Thread.run(Thread.java:1096)
E/AndroidRuntime(19379): Caused by: java.lang.NullPointerException
E/AndroidRuntime(19379):        at com.metatroid.android.swim.ThreadViewer.getPosts(ThreadViewer.java:153) …

android

14
推荐指数
2
解决办法
8250
查看次数

android检测,如果晚上

有比这更好的方法吗?

Boolean isNight;
Calendar cal = Calendar.getInstance();
int hour = cal.get(Calendar.HOUR_OF_DAY);
if(hour < 6 || hour > 18){
    isNight = true;
} else {
    isNight = false;
}
Run Code Online (Sandbox Code Playgroud)

它只检查小时是否在晚上7点到早上5点之间.有没有其他方法可以做到这一点?

android

10
推荐指数
1
解决办法
3036
查看次数

在Rails 3中跨子域共享登录会话的正确方法?

我在互联网上发现的关于此的所有信息都说使用类似的东西

Login::Application.config.session_store :cookie_store, :key => '_login_session', :domain => '.domain.com'

并对我要共享该会话的所有子域使用相同的密钥.当我这样做时,子域之间不会传递身份验证.实际上,当我访问任何所谓的共享会话时,初始会话将被覆盖

即在login.domain.com上,我运行身份验证,返回用户名和会话user_id.然后我去sub.domain.com,它应该返回与login.domain.com相同的信息,但不会.在此之后,我回到login.domain.com,我也不再在那里进行身份验证.

在sub.domain.com上,session_store.rb文件如下所示:

Something::Application.config.session_store :cookie_store, :key => '_login_session', :domain => '.domain.com'

我用过:所有的:域值,也有相同的结果.如果我删除上面的:域设置,那么初始会话不会被覆盖,但它也不会被共享.

当我在Firefox Cookie的Cookie编辑器中查看Cookie时,两个子域名都使用相同的Cookie名称,但不会共享身份验证.这是一个非常基本的Users表,我使用OpenID和OAuth来执行Omniauth的身份验证

authentication ruby-on-rails-3

7
推荐指数
2
解决办法
7649
查看次数

Rails活动作业:perform_later不在后台执行

我有一个冗长的任务需要在我的Rails 4.2.6应用程序中在后台运行.不幸的是,使用Active Job不会将作业发送到后台.我创造了一份工作:

class PhotoProcessorJob < ActiveJob::Base
  queue_as :default
  def perform(*args)
    ::Photo.process_photos
  end
end
Run Code Online (Sandbox Code Playgroud)

它调用我的Photo类上的方法(存储在config/initializers中):

class Photo
  require 'zxing'
  require 'csv'

  @tablePath = Dir.glob("#{Rails.root.to_s}/tmp/photo_processing/*.csv")[0]
  @output = "#{Rails.root.to_s}/tmp/photo_data.csv"

  def self.getStudentInfo(id)
    CSV.foreach(@tablePath, headers: true) do |row|
      if row["Student ID"] == id
        return row
      else
        next
      end
    end
  end

  def self.writeInfoToFile(data, file)
    first_name = data["First Name"]
    last_name = data["Last Name"]
    student_id = data["Student ID"]
    grade = data["Grade"]
    email = data["Email"]
    photo = file.to_s
    CSV.open(@output, "a+") do |csv|
      csv << [first_name, last_name, student_id, grade, …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails rails-activejob

7
推荐指数
1
解决办法
4637
查看次数

Android - 窗口中的多个EditText字段调整大小

在我的一个观点中,我有三个EditText领域.前两个是单行,第三个是多行.我正在使用android:windowSoftInputMode="stateVisible|adjustResize".但是当IME出现并且它具有焦点时,第三个字段在纵向模式下折叠太小.

是否可以选择设置最小高度,以强制窗口向下滚动以容纳第三个字段?

我已经尝试设置android:minHeight="20dip"xml的文件,但这并没有影响.

EditText问题是这样的:

<EditText 
        android:id="@+id/msgreplyarea"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:gravity="top"
        android:layout_weight="1"
        android:layout_marginLeft="10dip" android:layout_marginRight="10dip"
        android:layout_marginTop="10px" 
        android:inputType="textCapSentences|textMultiLine"
        android:imeOptions="flagNoEnterAction">
Run Code Online (Sandbox Code Playgroud)

谢谢.

android android-layout

6
推荐指数
1
解决办法
1470
查看次数

Android:使用START_REDELIVER_INTENT标志检测重新启动的服务

我的小部件附加了一个服务来处理各种点击"命令",这些命令通过其意图传递.我还设置return START_REDELIVER_INTENT;了在重新启动服务时调用intent.getAction()时不会给出nullPointerException的情况.等等.问题是,当我通过setOnClickPendingIntent调用之一发送最后一个intent时,那么当重新启动服务时,它就好像用户点击了一个viewId一样.例如

String command = intent.getAction();
int appWidgetId = intent.getExtras().getInt(AppWidgetManager.EXTRA_APPWIDGET_ID);
if(command.equals("some command")){
    //do something
}

...

remoteView.setOnClickPendingIntent(R.id.viewId,MyClass.makeControlPendingIntent(getApplicationContext(),"some command",appWidgetId));
Run Code Online (Sandbox Code Playgroud)

makeControlPendingIntent的位置是:

public static PendingIntent makeControlPendingIntent(Context context, String command, int appWidgetId) {
        Intent active = new Intent(context,MyService.class);
        active.setAction(command);
        active.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId);
        Uri data = Uri.withAppendedPath(Uri.parse("myclass://widget/id/#"+command+appWidgetId), String.valueOf(appWidgetId));
        active.setData(data);
        return(PendingIntent.getService(context, 0, active, PendingIntent.FLAG_UPDATE_CURRENT));
    }
Run Code Online (Sandbox Code Playgroud)

我可以做些什么来检查服务是否正在重新启动,以便在Android重新启动我的服务的情况下不运行任何这些命令?

android

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

在rails上的ruby中处理来自数据库的HAML

想知道是否可以从数据库条目处理HAML.我的模型目前处理HTML很好,但我宁愿输入HAML,并将视图处理成HTML.

haml ruby-on-rails

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

Rails ActionMailer附件显示为乱码文本

我正在尝试在我的一个rails应用程序中发送pdf附件,但附件是作为文本而不是正确的pdf.

我的邮件看起来像这样:

class Notifications < ActionMailer::Base
  def contact(email_params, sent_at = Time.now)
    subject "" << email_params[:subject]
    recipients "" << email_params[:client]
    from "#{email_params[:name]} <#{email_params[:address]}>"
    attachments['invoice.pdf'] = File.read("#{Rails.root.to_s}/public#{email_params[:attach]}") unless email_params[:attach].blank?
    sent_on sent_at
    body :message => email_params[:body], :sender_name => email_params[:name]
  end
end
Run Code Online (Sandbox Code Playgroud)

我在邮件收件箱中收到的内容:

--
Date: Thu, 23 Feb 2012 13:50:58 -0800
Mime-Version: 1.0
Content-Type: text/plain;
charset=UTF-8
Content-Transfer-Encoding: 7bit
Content-ID: <[mailserver]>

Message Body

--
Date: Thu, 23 Feb 2012 13:50:58 -0800
Mime-Version: 1.0
Content-Type: application/pdf;
charset=UTF-8;
filename=invoice.pdf
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename=invoice.pdf
Content-ID: <[mailserver]>
Run Code Online (Sandbox Code Playgroud)

接下来是一串很长的ascii字符 …

ruby-on-rails actionmailer

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