Giter Site home page Giter Site logo

episodes's People

Watchers

 avatar

episodes's Issues

typeof(window.external.pageT) returns "unknown" instead of "undefined" for some versions of IE

Certain versions of IE will return "unknown" instead of "undefined" for 
typeof(window.external.pageT). This will cause a JS error following the test on 
line https://code.google.com/p/episodes/source/browse/trunk/episodes.js#266

We've been able to reproduce that behavior on a machine with Windows XP and IE8 
8.0.6001.18702 (although 2 other machines with the same IE version didn't 
reproduce). But this behavior has been documented for IE when accessing objects 
via COM+ bridge: 
http://stackoverflow.com/questions/10982739/typeof-returning-unknown-in-ie

Original issue reported on code.google.com by [email protected] on 9 Mar 2014 at 12:28

EPISODES.measure bug in ex1.html

What steps will reproduce the problem?
1. Using Chrome, load ex1.html without browser refresh (i.e. click on a link).

What is the expected output? What do you see instead?
EPISODES.measure doesn't work. It should.

What version of the product are you using? On what operating system?
0.2. Ubuntu 10.10. Chrome 9.0.597.94.

Please provide any additional information below.
It's because of the line

EPISODES.measure = function(en, st, en) { EPISODES.q.push( ["measure", en, st, 
en || new Date().getTime()] ); };

It has two parameters with the same name. This causes calls like

EPISODES.measure("jQuery", "jQuery Loading")

to fail because the first parameter is overwritten by the third, which is 
undefined.

For example:

>var test = function(en, st, en) { console.log(en, st, en); };
>test('a', 'b', 'c');
c b c

I fixed by changing the line to

EPISODES.measure = function(en, st, enOrT) { EPISODES.q.push( ["measure", en, 
st, enOrT || new Date().getTime()] ); };

This seems to fix it.

Original issue reported on code.google.com by [email protected] on 14 Feb 2011 at 2:47

Remove EPISODES.drawEpisodes from episodes.js

Remove EPISODES.drawEpisodes from episodes.js, since episodes.js should be as 
small as possible and this visualization is definitely not essential for every 
website that would want to use Episodes.

It should be moved to a different file, maybe episodes.visualize.js, or 
something like that?

Original issue reported on code.google.com by work%[email protected] on 2 Nov 2010 at 8:28

Episodes 2 example page measure method doesn't work as expected

What steps will reproduce the problem?
1. Open Chrome web inspector/other JavaScript console
2. Visit http://stevesouders.com/episodes2/ex1.html

What is the expected output? What do you see instead?
 - Should not see any errors show up.  Instead, the following is logged to the console:
    Error: episodeName is undefined in EPISODES.measure.

What version of the product are you using? On what operating system?
  - 0.2 on MacOS X, Chrome 19.0.1084.46

Please provide any additional information below.
  - Appears to be a bug with the example page, and not with Episodes itself.  In the head of the sample page the following code exists:

EPISODES.measure = function(en, st, en) { EPISODES.q.push( ["measure", en, st, 
en || new Date().getTime()] ); };

The 'en' variable is used twice, causing episodes to not to be able to 
distinguish between the episode name and the end time.

Original issue reported on code.google.com by [email protected] on 24 May 2012 at 8:43

Use encodeURIComponent() instead of escape() to encode cookie

Episodes is currently using the escape() function to encode the URL in the 
cookie:
https://code.google.com/p/episodes/source/browse/trunk/episodes.js#315

In theory, this is completely fine, as the specification for HTTP Cookies 
(http://tools.ietf.org/html/rfc2965) only mentions the following around 
encoding:
"To maximize compatibility with user agents, servers that wish to store 
arbitrary data in a cookie-value SHOULD encode that data, for example, using 
Base64"

So, while technically the RFC doesn't even require URL encoding, it is the 
de-facto implementation. And most commonly used is the function 
encodeURIComponent().

In fact, the O'Reilly book "Javascript: The definitive Guide" mentions a helper 
function to parse cookies and states in the comment "Assume that cookie values 
are encoded with encodeURIComponent()."
https://www.inkling.com/read/javascript-definitive-guide-david-flanagan-6th/chap
ter-20/parsing-the-document-cookies

I could imagine that in reality a lot of people are making this assumption, and 
this can cause severe bugs (which we run into):

> escape('http://www.foo.co.kr/방콕')
"http%3A//www.foo.co.kr/%uBC29%uCF55"

> encodeURIComponent('http://www.foo.co.kr/방콕')
"http%3A%2F%2Fwww.foo.co.kr%2F%EB%B0%A9%EC%BD%95"

> decodeURIComponent(escape('http://www.foo.co.kr/방콕'))
URIError: URI malformed

Original issue reported on code.google.com by [email protected] on 23 Mar 2014 at 1:25

findStartCookie fails if EPISODES cookie is not the last one

What steps will reproduce the problem?
1. load a page episodes.js on it and with the EPISODES cookie not the last one 
in document.cookie.
2. Run EPISODES.findStartCookie().

What is the expected output? What do you see instead?
Expected: the start time. Actual: undefined.

What version of the product are you using? On what operating system?
Checked out via "svn checkout http://episodes.googlecode.com/svn/trunk/ 
episodes-read-only" on the morning of 14/02/2011. Version: 0.2. Rev: r13. OS: 
Ubuntu 10.10. Browser: Firefox 3.6.13.

Please provide any additional information below.
It looks like the line:

var aCookies = document.cookie.split(' ');

should be:

var aCookies = document.cookie.split('; ');

Otherwise, the semicolon separating cookies is left in and therefore it does 
not match document.referrer.

I implemented this fix and it seems to work fine.

Original issue reported on code.google.com by [email protected] on 14 Feb 2011 at 1:35

When using autorun, it's difficult to pass additional parameters to sendBeacon

EPISODES.sendBeacon takes in a "params" argument, but when EPISODES.done calls 
EPISODES.sendBeacon (when EPISODES.autorun is true), it does not pass any 
arguments.

Ideally, the user could set some global beacon params which would be respected 
by EPISODES.sendBeacon.

I've attached a patch that represents one possible implementation of this 
functionality.


Original issue reported on code.google.com by [email protected] on 2 Feb 2011 at 3:59

Attachments:

more examples

Need many more examples:
  - more listener examples consuming postMessage
  - set autorun to false and do some lazy loading before sending beacon
  - true Web 2.0 app that has different phases without any onload event

Original issue reported on code.google.com by [email protected] on 2 Nov 2010 at 3:23

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.